如何在用户控件上添加可变图像
本文关键字:添加 图像 控件 用户 | 更新日期: 2023-09-27 18:18:29
我试图有一个用户控件,其中图像是从其包含元素传入的。这样做的目的是,我可以重用一组常见的视觉元素,而只改变图像。例如:
控件用法:
<DataTemplate DataType={x:Type myType}>
<local:MyControl PlotIconSource="..'Images'Scatter.png"/>
</DataTemplate>
控件内的图像
<UserControl x:Class="MyControl">
<Image Source="{Binding PlotIconSource}"/>
</UserControl>
最后在MyControl.xaml.cs的代码背后的PlotIconSource的依赖属性。
public ImageSource PlotIconSource
{
get { return (ImageSource)GetValue(PlotIconSourceProperty); }
set { SetValue(PlotIconSourceProperty, value); }
}
public static readonly DependencyProperty PlotIconSourceProperty =
DependencyProperty.Register(
"PlotIconSource",
typeof(ImageSource),
typeof(PlotHeader),
new UIPropertyMetadata());
我相信我在这个过程中遗漏了一些东西,所以任何帮助都将是感激的。
您可能希望通过RelativeSource
或ElementName
绑定:
<UserControl x:Class="MyControl" Name="control">
<Image Source="{Binding PlotIconSource, ElementName=control}"/>
</UserControl>
(不要设置DataContext
,它将从外部不可见,并与用于继承DataContext
的绑定混淆)
在我看来是正确的,你是收到错误信息还是什么?