71 lines
3.7 KiB
XML
71 lines
3.7 KiB
XML
<UserControl x:Class="XP.Common.Controls.ImageHistogram.ImageHistogramControl"
|
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"
|
|
xmlns:loc="clr-namespace:XP.Common.Localization.Extensions"
|
|
xmlns:local="clr-namespace:XP.Common.Controls.ImageHistogram"
|
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
|
mc:Ignorable="d"
|
|
d:DesignHeight="200" d:DesignWidth="400">
|
|
<UserControl.Resources>
|
|
<local:FrequencyLabelConverter x:Key="FreqConverter"/>
|
|
</UserControl.Resources>
|
|
<Grid>
|
|
<!-- 图表控件 | Chart control -->
|
|
<telerik:RadCartesianChart x:Name="HistogramChart" Padding="0">
|
|
<!-- 禁用 Telerik 自带的无数据提示 | Disable Telerik built-in empty content -->
|
|
<telerik:RadCartesianChart.EmptyContent>
|
|
<TextBlock/>
|
|
</telerik:RadCartesianChart.EmptyContent>
|
|
<!-- X 轴:灰度级别(缩小字体,控制刻度数量,K/M 缩写)| X Axis: Gray Level -->
|
|
<telerik:RadCartesianChart.HorizontalAxis>
|
|
<telerik:LinearAxis x:Name="XAxis"
|
|
Minimum="0"
|
|
Maximum="255"
|
|
MajorStep="64"
|
|
FontSize="9">
|
|
<telerik:LinearAxis.LabelTemplate>
|
|
<DataTemplate>
|
|
<TextBlock Text="{Binding Converter={StaticResource FreqConverter}}"/>
|
|
</DataTemplate>
|
|
</telerik:LinearAxis.LabelTemplate>
|
|
</telerik:LinearAxis>
|
|
</telerik:RadCartesianChart.HorizontalAxis>
|
|
|
|
<!-- Y 轴:像素频次(K/M 缩写标签)| Y Axis: Pixel Frequency (K/M abbreviation labels) -->
|
|
<telerik:RadCartesianChart.VerticalAxis>
|
|
<telerik:LinearAxis x:Name="YAxis"
|
|
Minimum="0"
|
|
Maximum="1"
|
|
FontSize="9">
|
|
<telerik:LinearAxis.LabelTemplate>
|
|
<DataTemplate>
|
|
<TextBlock Text="{Binding Converter={StaticResource FreqConverter}}"/>
|
|
</DataTemplate>
|
|
</telerik:LinearAxis.LabelTemplate>
|
|
</telerik:LinearAxis>
|
|
</telerik:RadCartesianChart.VerticalAxis>
|
|
|
|
<!-- 面积图系列(适合密集直方图数据)| Area Series (suitable for dense histogram data) -->
|
|
<telerik:RadCartesianChart.Series>
|
|
<telerik:ScatterAreaSeries x:Name="HistogramBarSeries"
|
|
XValueBinding="GrayLevel"
|
|
YValueBinding="Frequency"
|
|
Fill="#7F2196F3"
|
|
Stroke="#FF2196F3"
|
|
StrokeThickness="1"/>
|
|
</telerik:RadCartesianChart.Series>
|
|
</telerik:RadCartesianChart>
|
|
|
|
<!-- 无数据提示文本(叠加在图表上方)| No data placeholder text (overlaid on chart) -->
|
|
<TextBlock x:Name="NoDataPlaceholder"
|
|
Text="{loc:Localization Histogram_NoData}"
|
|
HorizontalAlignment="Center"
|
|
VerticalAlignment="Center"
|
|
FontSize="12"
|
|
Foreground="#9E9E9E"
|
|
Visibility="Visible"/>
|
|
</Grid>
|
|
</UserControl>
|