有一个ResourceDictionary:
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<Style TargetType="Button">
<Setter Property="VerticalAlignment"
Value="Stretch" />
<Setter Property="Background"
Value="RoyalBlue" />
</Style>
</ResourceDictionary>
我想用它作为defualt按钮控件。
App.Xaml包含dictionarydictionary:
<Application x:Class="EroMangaManager.UWP.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:muxc="using:Microsoft.UI.Xaml.Controls">
<Application.Resources>
<muxc:XamlControlsResources>
<muxc:XamlControlsResources.MergedDictionaries>
<ResourceDictionary Source="ResourceDictionarys/DefaultControlStyle.xaml" />
</muxc:XamlControlsResources.MergedDictionaries>
</muxc:XamlControlsResources>
</Application.Resources>
</Application>
旧的UI是原始的UWP UI(不是WinUI包),默认的按钮控件可以正常工作。
但是如果我将UI更改为WinUI 2.8.2包,默认的按钮控件就不能工作了。
我尝试在App.xaml中定义样式,而不是在外部的xaml文件中:
<Application x:Class="EroMangaManager.UWP.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:muxc="using:Microsoft.UI.Xaml.Controls">
<Application.Resources>
<Style TargetType="Button">
<Setter Property="Background"
Value="RoyalBlue" />
</Style>
<muxc:XamlControlsResources x:Key="de">
<muxc:XamlControlsResources.MergedDictionaries>
<ResourceDictionary Source="ResourceDictionarys/DefaultControlStyle.xaml" />
</muxc:XamlControlsResources.MergedDictionaries>
</muxc:XamlControlsResources>
</Application.Resources>
</Application>
编译是可以的,但是当运行到Page.Construct函数时,代码this.InitializeComponent();
将抛出异常。
如何正确使用WinUI包的默认值?
1条答案
按热度按时间fcipmucu1#
我测试了代码,这是一个意外的行为。目前,您可以尝试以下两种解决方案。
1.使用ResourceDictionary(DefaultControlStyle.xaml)中的新ResourceKey。
2.定义每个页面资源中按钮的样式。