在XAML中使用绑定设置样式

时间:2011-02-06 22:22:09

标签: c# silverlight xaml coding-style

我需要根据Silverlight中的某些配置值设置给定控件的Style。我希望有可能从两种可用样式(静态资源)中为控件选择Style。我试图做一些像:

<TextBox Style="{Binding ABC}"/>

,其中

public string ABC
{
    get {return "{StaticResource MyStyle}";}
}

不幸的是,这不起作用。

你有什么想法吗?

提前致谢!

干杯

1 个答案:

答案 0 :(得分:6)

你很亲密。您需要将Style属性绑定到类型为Style的属性(不是表示静态资源查找的字符串)。

您有两种存储样式的选项,这将决定该属性的外观。将样式放在页面资源或App资源中,然后您的ABC属性将如下所示:

// using page resources
public Style ABC
{
    get { return (Style) this.Resources["_myStyle"]; }
}

// using application resources
public Style ABC
{
    get { return (Style) App.Current.Resources["_myStyle"]; }
}

其中_myStyle是样式对资源字典中x:Key属性的值。