在Silverlight 2(RC0)中自动应用模板(主题)

时间:2008-10-08 12:48:32

标签: silverlight theming silverlight-2-rc0

有没有办法自动将主题/模板/样式应用于targettype的所有控件,所以我不必在所有控件上指定Template = ...,Style = ...?

3 个答案:

答案 0 :(得分:2)

我认为有一种方法可以通过省略x:Key属性来实现这一点,但这似乎不再起作用了。根据一些谷歌搜索,在我看来,你最好的是创建一个自己的自定义控件库,它有一个定义你的自定义样式的themes / generic.xaml文件。然后你可以使用你自己的风格正确的元素(MyButton而不是Button)。要么是stick with the Style property

here的一些示例以及使用主题here的替代方法。

更新:刚刚找到了这个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都可以选择它。这绝对是团队正在考虑未来版本的事情。