我有一些样式包含在带有资源引用的页面中。
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="MyStyles.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
我为TextBlock
,Button
等命名了样式。使用它们时,一切正常。
当我尝试在DataTemplate
ItemsControl
内使用它们时,它们无法应用。
<ItemsControl>
<ItemsControl.ItemsPanel>
<StackPanel Orientation="Horizontal" />
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<TextBlock Text="blah" Style="{StaticResource MyTextBlockStyle}" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
如何让其他文件中包含的命名样式在我的DataTemplate
内工作,就像在页面上的其他位置一样?
答案 0 :(得分:0)
不要将样式包含在特定页面的XAML中,而是将它们包含在App.xaml
中。这是我如何添加它们
<Application x:Class="MyApp.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:MyApp">
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Resources/Resources.xaml"></ResourceDictionary>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
我始终使用Resources.xaml
DataTemplate
中定义的样式。
答案 1 :(得分:0)
不是手动定义,而是可以通过设计面板使用Blend。
右键点击
Gridview&gt;编辑其他模板&gt;编辑生成的项目
您可以编辑自己的内容。然后,您可以选择任何项目并在设计窗格上定义其样式,如下所示
如果在右键菜单中没有看到按钮,文本块样式,则可以查看此帖子以使其可重复使用 Style only works for the first occurence when outside Grid.Resources?
希望这会有所帮助。