gpt4 book ai didi

wpf - WPF中的派生类和主题继承?

转载 作者:行者123 更新时间:2023-12-04 14:34:57 25 4
gpt4 key购买 nike

我正在构建一个 WPF 应用程序,我从标准 WPF 控件类型(文本块、按钮等)派生了一堆控件。我尝试向 app.xaml 添加一个资源字典来设置主题,但我的自定义控件没有似乎尊重它。 (例如,标准按钮采用 Aero 主题就好了,但从 Button 派生的 myButton 仍然是无外观的。)有没有办法可以将派生控件的主题设置为与基本控件相同?

编辑:我应该注意到这些自定义控件是在运行时实例化的,所以我不能直接通过 XAML 操作它们的属性。我可以通过在应用程序资源字典中使用 Setter 来更改特定属性,例如背景颜色,但还没有找到使用该技术设置主题的方法。

最佳答案

如果您在名为 Dictionary1.xaml 的资源字典中有这种样式

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Style x:Key="MyButtonStyle"
TargetType="{x:Type Button}"
BasedOn="{StaticResource {x:Type Button}}">
<Setter Property="Width" Value="75" />
<Setter Property="Height" Value="23" />
</Style>
</ResourceDictionary>

然后你可以在任何带有此代码的按钮上设置它
Uri resourceLocater = new Uri("/YourAssemblyName;component/Dictionary1.xaml", System.UriKind.Relative);
ResourceDictionary resourceDictionary = (ResourceDictionary)Application.LoadComponent(resourceLocater);
Style myButtonStyle = resourceDictionary["MyButtonStyle"] as Style;

Button button = new Button();
button.Style = myButtonStyle;

关于wpf - WPF中的派生类和主题继承?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4069848/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com