我们有一个主要使用Telerik WPF控件的项目。不幸的是,一些控件(主要是选项卡控件)存在无法解决的漏洞,因此我们不得不放弃它们并使用Windows等效控件。有没有办法让Windows控件像Telerik控件一样进行样式设置,因为目前它们根本不匹配。我被告知可以这样做,但在网上找不到任何相关信息。
提前感谢。
提前感谢。
好的,这个问题已经被“回答”了,但我也发现很难找到任何信息,所以对于那些跟进的人:
设置Telerik控件的主题很容易,例如:
Telerik.Windows.Controls.StyleManager.ApplicationTheme = new Telerik.Windows.Controls.SummerTheme();
但是你还需要创建一个资源文件来设置所有窗口控件的主题,例如
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"
>
<Style TargetType="TextBox" BasedOn="{StaticResource {telerik:ThemeResourceKey ThemeType=telerik:SummerTheme, ElementType=TextBox}}" />
<Style TargetType="Button" BasedOn="{StaticResource {telerik:ThemeResourceKey ThemeType=telerik:SummerTheme, ElementType=Button}}" />
<Style TargetType="ListBox" BasedOn="{StaticResource {telerik:ThemeResourceKey ThemeType=telerik:SummerTheme, ElementType=ListBox}}" />
<Style TargetType="CheckBox" BasedOn="{StaticResource {telerik:ThemeResourceKey ThemeType=telerik:SummerTheme, ElementType=CheckBox}}" />
<Style TargetType="PasswordBox" BasedOn="{StaticResource {telerik:ThemeResourceKey ThemeType=telerik:SummerTheme, ElementType=PasswordBox}}" />
<Style TargetType="ScrollViewer" BasedOn="{StaticResource {telerik:ThemeResourceKey ThemeType=telerik:SummerTheme, ElementType=ScrollViewer}}" />
接下来,您需要在应用程序的app.xaml文件中添加一行将其添加到应用程序资源中:
<ResourceDictionary Source="Resources/Windows_SummerTheme.xaml" />
或通过在代码中添加它:
Application.Current.Resources.MergedDictionaries.Add("./Resources/Windows_SummerTheme.xaml");
显然,你可以为每个主题创建一个文件,并使用 case 语句,以便用户可以从菜单中选择应用程序的外观。
希望这可以帮到你!