有没有办法自动将主题/模板/样式应用于targettype的所有控件,所以我不必在所有控件上指定Template = ...,Style = ...?
答案 0 :(得分:2)
我认为有一种方法可以通过省略x:Key属性来实现这一点,但这似乎不再起作用了。根据一些谷歌搜索,在我看来,你最好的是创建一个自己的自定义控件库,它有一个定义你的自定义样式的themes / generic.xaml文件。然后你可以使用你自己的风格正确的元素(MyButton而不是Button)。要么是stick with the Style property。
更新:刚刚找到了这个here的一个很好的例子(我想你可能已经看过了它)。
答案 1 :(得分:1)
要为所有控件设置主题,请创建Startup事件并在Startup事件处理程序中设置主题。该主题将应用于该解决方案中的所有用户控件。
//App.xaml
<Application x:Uid="Application_1" x:Class="SampleApp.Home.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
StartupUri="MainWindow.xaml"
Startup="Application_Startup">
//App.xaml.cs
private void Application_Startup(object sender, StartupEventArgs e)
{
StyleManager.ApplicationTheme = new MetroTheme(); //Set your theme here
}
答案 2 :(得分:0)
Einarl:目前还没有办法在Silverlight 2核心中“级联”控制模板/样式。也就是说,您无法为TextBox设置样式/控件模板,并希望所有TextBox都可以选择它。这绝对是团队正在考虑未来版本的事情。