您的位置:首页 > Web前端 > CSS

WPF ToolKit Chart 自定义样式

2015-11-14 11:31 651 查看
1.引用:WPFToolkit.dll, System.Windows.Controls.DataVisualization.Toolkit.dll

2. 页面代码参考如下:

<UserControl x:Class="GDNXFD.Alert.IFIXControls.StationPieChart"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:charting="clr-namespace:System.Windows.Controls.DataVisualization.Charting;assembly=System.Windows.Controls.DataVisualization.Toolkit"
xmlns:datavis="clr-namespace:System.Windows.Controls.DataVisualization;assembly=System.Windows.Controls.DataVisualization.Toolkit"
xmlns:chartingprimitives="clr-namespace:System.Windows.Controls.DataVisualization.Charting.Primitives;assembly=System.Windows.Controls.DataVisualization.Toolkit"
Height="200">
<Border BorderThickness="0,0,0,1" BorderBrush="#FFFFFFFF" Padding="10,0,10,10">
<StackPanel>
<charting:Chart>
<charting:Chart.Template>
<ControlTemplate TargetType="{x:Type charting:Chart}">
<Border Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
Padding="{TemplateBinding Padding}">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="90" />
</Grid.ColumnDefinitions>

<datavis:Title Content="{TemplateBinding Title}"
Style="{TemplateBinding TitleStyle}" />
<chartingprimitives:EdgePanel Name="ChartArea"  Height="160"
Style="{TemplateBinding ChartAreaStyle}"
Grid.Column="0" Margin="5 5 0 5">
<Grid Panel.ZIndex="-1" Style="{TemplateBinding PlotAreaStyle}" />
<Border Panel.ZIndex="10" BorderBrush="#FF919191" BorderThickness="1" />
</chartingprimitives:EdgePanel>
<datavis:Legend x:Name="Legend" Height="160"
Grid.Column="1" Title="{TemplateBinding LegendTitle}"
Style="{TemplateBinding LegendStyle}"
VerticalAlignment="Top" HorizontalAlignment="Left"
Margin="0 5 5 5" />

</Grid>
</Border>
</ControlTemplate>
</charting:Chart.Template>
<charting:PieSeries Name="pieChart"
DependentValuePath="Total"
IndependentValuePath="ObjectName"
Background="Navy"
IsSelectionEnabled="True" >
</charting:PieSeries>
</charting:Chart>
</StackPanel>
</Border>
</UserControl>


3. 后台代码参考:

IList<AlertSnap> lst = ClientCache.Instance.AlertSnaps;
if (lst != null)
{
var q = from p in lst
group p by p.StationName into g
select new RankingModel
{
ObjectName = GetSimplifyStationName( g.Key),
Total = g.Count()
};
var x = q.OrderByDescending(a => a.Total).Take(9).ToArray();

this.pieChart.ItemsSource = x;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: