gpt4 book ai didi

wpf - 如何为 WPF 工具包图表赋予样式

转载 作者:行者123 更新时间:2023-12-04 16:23:22 25 4
gpt4 key购买 nike

enter image description here

我在 WPF 应用程序中使用 WPF Toolkit Chart 和 PieChart。

我想在饼图图片中默认将白色背景更改为透明..

如何赋予风格以实现这一目标

最佳答案

WPF 旨在允许您通过 XAML 设置控件样式;不是代码。也可以通过样式使饼图中的绘图区域和图例透明。不幸的是,绘图区域周围的边框无法使用属性进行控制,而您必须修改整个控制模板。最后,使用样式可能和编写修改可视化树的代码一样乏味,但至少对我来说,它仍然感觉像是一种更简洁的方法。

<chartingToolkit:Chart>
<chartingToolkit:Chart.PlotAreaStyle>
<Style TargetType="Grid">
<Setter Property="Background" Value="Transparent"/>
</Style>
</chartingToolkit:Chart.PlotAreaStyle>

<chartingToolkit:Chart.LegendStyle>
<Style TargetType="visualizationToolkit:Legend">
<Setter Property="Margin" Value="15,0"/>
<Setter Property="VerticalAlignment" Value="Center"/>
<Setter Property="BorderBrush" Value="Transparent"/>
<Setter Property="Background" Value="Transparent"/>
</Style>
</chartingToolkit:Chart.LegendStyle>

<chartingToolkit:Chart.Style>
<Style TargetType="chartingToolkit:Chart">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="chartingToolkit:Chart">
<Border Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Padding="{TemplateBinding Padding}">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>

<visualizationToolkit:Title Content="{TemplateBinding Title}" Style="{TemplateBinding TitleStyle}" />

<!-- Use a nested Grid to avoid possible clipping behavior resulting from ColumnSpan+Width=Auto -->
<Grid Grid.Row="1" Margin="0,15,0,15">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>

<visualizationToolkit:Legend x:Name="Legend" Title="{TemplateBinding LegendTitle}" Style="{TemplateBinding LegendStyle}" Grid.Column="1" />
<chartingprimitives:EdgePanel x:Name="ChartArea" Style="{TemplateBinding ChartAreaStyle}">
<Grid Canvas.ZIndex="-1" Style="{TemplateBinding PlotAreaStyle}" />
<!--<Border Canvas.ZIndex="10" BorderBrush="#FF919191" BorderThickness="1" />-->
</chartingprimitives:EdgePanel>
</Grid>
</Grid>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</chartingToolkit:Chart.Style>

<chartingToolkit:PieSeries ... />
</chartingToolkit:Chart>
PlotAreaStyleLegendStyle被修改以使其透明。通过修改 ControlTemplate 去除绘图区域周围的边框并简单地注释掉有问题的 Border元素。

关于wpf - 如何为 WPF 工具包图表赋予样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15184501/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com