【问题标题】:How to access a Style that exists in a UserControl?如何访问存在于 UserControl 中的样式?
【发布时间】:2012-04-03 22:36:57
【问题描述】:

我在用户控件中声明了一个样式。然后我将该 UserControl 放在一个窗口中。如何从 Window 的 XAML 访问 UserControl 的样式???

【问题讨论】:

  • 看来你的设计是错误的。如果与不同控件共享的样式将其放在树中的元素上方。例如在应用程序级别或窗口上。
  • 有点奇怪,我很难解释为什么会这样。

标签: wpf xaml


【解决方案1】:

通过可视化树向上解析资源。这不是处理样式的常用方法。

你可以通过后面的代码来实现:

Style style = (Style)yourUserControl.Resources[YourKeyStyle];

【讨论】:

  • 我认为这将是我这样做的唯一方法。我希望有一种方法可以在 XAML 中执行这种精确的方法,但我想不会。谢谢!
【解决方案2】:

如果你给你的 UserControl 一个名字,你可以简单地使用ElementName 绑定来访问UserControl 的Style 属性。

<Window Title="MainWindow" Height="350" Width="525" 
Style="{Binding ElementName=myUserControl, Path=Style}">
    <UserControl Name="myUserControl" >
        <UserControl.Style>
            <Style TargetType="Control">
                <Setter Property="Background" Value="Yellow" />
            </Style>
        </UserControl.Style>
    </UserControl>
</Window>

如果您只想从 UserControl 的样式中访问单个 setter 值,您可以使用以下内容:

<Window Background="{Binding ElementName=myUserControl, Source=Style, Path=Background}">

希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 2015-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-29
    • 2011-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多