我想创建一个控件,在上面显示图像和水印(图像或其他东西)。
但是水印应该从另一个XAML文件加载,以便让人们自定义水印的显示方式:对齐、不透明度、大小、水印的性质(TextBlock、Image…)
例如,我可以用这个外观加载我的水印
<Border BorderThickness="5" BorderBrush="Aqua" Width="50" Height="50">
<Image Source="play.png" />
</Border>
此代码来自我的Themes/generic.xaml,MyWatermarkControl(从Control继承)是包含控件代码(依赖属性)的类。
<Style TargetType="local:MyWatermarkControl">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="local:MyWatermarkControl">
<Grid>
<Image Source="{TemplateBinding ImagePath}" />
<Image x:name="watermark" Source="play.png" /> <!--I want this to be loaded from another .xaml-->
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
我的搜索结果让我在我的ControlTemplate中添加了一些东西,比如ContentPresenter、ContentTemplate、DataTemplate:这么多结果,我不明白它们是如何工作的,但事实上它们是嵌套的
您可以将Source
属性添加到MyWatermarkControl
,然后将嵌入的Image
的Source
属性绑定到此属性。有关更多详细信息,请参阅我编写的以下教程:
在WPF/Silverlight 中创建可重用用户控件的简单模式