【问题标题】:WPF style in Application resources应用程序资源中的 WPF 样式
【发布时间】:2016-12-30 16:27:50
【问题描述】:

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

<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 设置模型(在运行时)时,该模型也会应用于应用程序中显示的所有其他饼图。好像只有一个实例被所有应用该样式的馅饼使用。

有什么方法可以告诉它在每次将样式应用于新控件时创建一个新的 nm:PieSeries 实例?

【问题讨论】:

  • 您可以尝试创建一个单独的资源&lt;nm:PieSeries x:Shared="False" x:Key="NonSharedPieSeries" /&gt; 并将其用作Value="{StaticResource NonSharedPieSeries}" /&gt;
  • @Ed Plunkett 成功了,尽管有必要使用 Value={Binding Source={staticResource ...}。修改您的答案并发布,以便我接受

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


【解决方案1】:

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

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

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

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

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

【讨论】:

    猜你喜欢
    • 2016-01-30
    • 2017-12-03
    • 2012-06-03
    • 2010-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-08
    • 1970-01-01
    相关资源
    最近更新 更多