是否可以在ResourceDictionary中定义UserControl,然后将其添加到同一XAML文件中的组件?类似的东西:
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
etc.>
<Window.Resources>
<ResourceDictionary>
<UserControl x:Key="MyCustomLabel">
<Label Content="Foo"/>
...lots more here
</UserControl>
</ResourceDictionary>
</Window.Resources>
<Grid>
<MyCustomLabel /> //This doesn't work
<MyCustomLabel />
<MyCustomLabel />
</Grid>
</Window>
我可以在自己的文件中定义它,但我真的只需要它作为此文件中的子组件。我会使用Style,但我不知道如何设置Grid的每一行的内容。有什么想法吗?
答案 0 :(得分:4)
您可以使用DataTemplate
资源和ContentPresenter
控件来实现此目的。以下示例与您的UserControl
:
<Window>
<Window.Resources>
<DataTemplate x:Key="ButtonTemplate">
<Button Content="{Binding}"/>
</DataTemplate>
</Window.Resources>
<StackPanel Margin="35">
<ContentControl ContentTemplate="{StaticResource ButtonTemplate}" Content="Hallo" />
<ContentControl ContentTemplate="{StaticResource ButtonTemplate}" Content="123" />
<ContentControl ContentTemplate="{StaticResource ButtonTemplate}" Content="ABC" />
</StackPanel>
</Window>
ContentControls
呈现为:
只需用您自己的控件替换Button
,它应该按照您想要的那样...