0

我想创建一个在其上显示图像和水印(图像或其他内容)的控件。
但是应该从另一个 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 :结果太多,我无法理解它们是如何工作的,但事实上它们是嵌套的

4

1 回答 1

0

您可以添加一个Source属性,MyWatermarkControl然后将Source嵌入的属性绑定Image到此属性。有关更多详细信息,请参阅我编写的以下教程:

在 WPF / Silverlight 中创建可重用用户控件的简单模式

于 2012-09-09T06:48:47.553 回答