应用程序资源中的 WPF 样式

标签 wpf xaml wpf-controls .net-4.5 wpf-style

我在应用程序资源中有一种样式,我想将其应用于许多不同的饼图。样式如下所示:

<Style x:Key="aaa" TargetType="{x:Type nm:CustomChartControl}">
  <Setter Property="..." Value="..." />
  <!-- etc -->
  <nm:CustomChartControl.Series>
  <nm:PieSeries /> <!-- PROBLEM -->
  </nm:CustomChartControl.Series>
</Style>

为了简单起见,我排除了更多的属性。这一切都很好。现在,我的一些馅饼需要有一个不同的“模型”来为切片绘制背景(例如虚线),这就是问题发生的地方。

当我在特定图表中为 nm:PieSeries 设置模型(在运行时)时,该模型也会应用于应用程序中显示的所有其他饼图。就好像所有应用该样式的馅饼都使用了一个实例。

每次将 Style 应用于新控件时,我是否可以告诉它创建一个新的 nm:PieSeries 实例?

最佳答案

您可以尝试将 PieSeries 创建为单独的非共享资源:

<nm:PieSeries x:Shared="False" x:Key="NonSharedPieSeries" />

然后在样式中使用该资源:

Value="{Binding Source={StaticResource NonSharedPieSeries}}" 

(...并感谢 OP 纠正了我在如何将其绑定(bind)到 Value 方面的错误)。

关于应用程序资源中的 WPF 样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41399443/

相关文章:

.net - Excel 2003 ActionsPane 中的 AutoSize ElementHost

wpf - IsMouseOver 鼠标捕获时

xaml - 管理外部同事编写的帮助内容的工作流程

xaml - 将 Canvas 与多条路径合并为一条路径

.net - WPF 中的用户控件位置

wpf - 为什么特殊字符是无效的按钮内容?

c# - mvvm 如何使 ListView 自动滚动到 ListView 中的新项目

wpf - 具有 TemplateSelector 属性的控件

wpf - 在其他元素后面订购2d/3d对象

wpf - 关于 WPF 3.5 中的窗口或关于框 (VS2008)