我在我的UWP
应用程序中使用了自定义样式。我的意思是我在App.xaml中编写了这些代码
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary x:Name="ThemeDictionary">
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Styles\BasicStyle.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
在BasicStyle.xaml中我编写了基本样式,如
<Style TargetType="TextBox">
<Setter Property="Background"
Value="White" />
<Setter Property="BorderThickness"
Value="1" />
<Setter Property="BorderBrush"
Value="#B9C5B7" />
<Setter Property="VerticalContentAlignment"
Value="Center" />
</Style>
当我更改我的应用程序的某些设置时,我想加载另一个样式文件
ResourceDictionary rd = new ResourceDictionary() { Source = uri };
Resources.MergedDictionaries[0].MergedDictionaries[0] = rd;
一切正常但usercontrol
的风格无效。
我在BasicStyle.xaml
写道:
<Style TargetType="UserControl">
<Setter Property="Width" Value="700"></Setter>
</Style>
但它没有用。我无法在我的xaml页面中定义样式并继承我上面提到的默认样式,因为有时它在应用程序中间被更改,我不知道什么是默认样式。如您所知,textbox
或Button
等其他控件的工作正确。谁可以告诉我usercontrol
有什么问题以及如何解决?
答案 0 :(得分:0)
我发现了我的问题,在我的xaml中,我使用UserControl标记作为树的根:
<UserControl x:Class="MyView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:Core="using:Microsoft.Xaml.Interactions.Core"
xmlns:Interactivity="using:Microsoft.Xaml.Interactivity"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006">
<Grid>
</Grid>
</UserControl>
我将它更改为Page类的子树,它起作用了:
<Page x:Class="MyView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:Core="using:Microsoft.Xaml.Interactions.Core"
xmlns:Interactivity="using:Microsoft.Xaml.Interactivity"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006">
<UserControl>
<Grid>
</Grid>
</UserControl>
</Page>