4
A
回答
7
您需要访问存储样式的XAML资源。通常他们的方式是将其存储在单独的资源文件中。然后,您需要以该ResourceDictionary对象的身份访问该XAML文件的URI。这里是一个例子,我使用转换器来决定一个元素的样式。
namespace Shared.Converters
{
public class SaveStatusConverter : IValueConverter
{
public object Convert(object value, System.Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
bool? saveState = (bool?)value;
Uri resourceLocater = new Uri("/Shared;component/Styles.xaml", System.UriKind.Relative);
ResourceDictionary resourceDictionary = (ResourceDictionary)Application.LoadComponent(resourceLocater);
if (saveState == true)
return resourceDictionary["GreenDot"] as Style;
if (saveState == false)
return resourceDictionary["RedDot"] as Style;
return resourceDictionary["GrayDot"] as Style;
}
public object ConvertBack(object value, System.Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new System.NotImplementedException();
}
}
}
2
如果你只是寻找一个例子,这里有一个相对可用的一个:
http://www.shujaat.net/2010/10/wpf-style-selector-for-items-in.html
如果你有更具体的问题,我会建议张贴一些代码/ XAML表示你已经什么尝试和你有什么问题。
8
您可以将属性添加到您的StyleSelector
,然后使用属性传递到在XAML中Style
的参考。
public class MyStyleSelector : StyleSelector
{
private Style styleToUse;
public Style StyleToUse
{
get { return styleToUse; }
set { styleToUse = value; }
}
public override Style SelectStyle(object item, DependencyObject container)
{
return styleToUse;
}
}
<Control StyleSelector="{DynamicResource myStyleSelector}">
<Control.Resources>
<Style x:Key="myStyle">
...
</Style>
<local:MyStyleSelector x:Key="myStyleSelector" StyleToUse="{StaticResource myStyle}"/>
</Control.Resources>
</Control>
相关问题
- 1. 使用StyleSelector和ItemContainerStyle
- 2. XAML组合样式
- 3. XAML边框样式
- 4. 复制XAML样式
- 5. 如何从另一个xaml样式表中引用xaml样式表
- 6. DataGrid行和单元格样式在XAML
- 7. Silverlight XAML用户控件和样式
- 8. XAML和Silverlight:应用样式子失败
- 9. 回形针返回非现有样式
- 10. Xaml继承的样式
- 11. WPF4 DataGridHeaderBorder在XAML样式
- 12. C#样式不使用xaml
- 13. Datagrid样式的帮助XAML
- 14. WPF XAML样式标记快捷方式?
- 15. 明确样式覆盖的隐式xaml样式
- 16. js样式属性返回空白
- 17. wp_title()返回值无法样式化
- 18. XLS样式表返回空Excel表格
- 19. Rails无法返回脚本/样式表
- 20. 样式属性:文本返回错误
- 21. XSLT样式表不返回子元素
- 22. 将XAML样式转换为样式背后的代码?
- 23. WPF的DataGrid StyleSelector的行
- 24. 如何测试WPF StyleSelector?
- 25. 在XAML中创建阴影样式
- 26. XAML - 绑定组头在组头样式
- 27. Silverlight中的XAML样式不被识别
- 28. 确定XAML样式的来源
- 29. 使用WPF中的XAML动态样式
- 30. 双值的XAML样式触发
我在XAML中创建了样式,我只想返回在XAML中声明的样式。 – Never 2012-03-01 16:07:27