【发布时间】:2017-06-04 06:22:55
【问题描述】:
我有一个通过数据绑定填充的图像元素 - 如果绑定返回路径,则绘制图像。如果不是(路径是一个空字符串),我们就没有图像。
<Image Source="{Binding Path=.Screenshot, Mode=OneWay}" Stretch="Fill" Margin="5,5,5,5" />
效果很好,除了边距无论如何都应用于布局(这对于空图像看起来很糟糕)。我想我会做一个 DataTrigger 而不是只应用边距是路径不为空,但是:
- 图像似乎没有样式(实际上有,忽略这部分)
- 我不知道如何测试“字符串不为空”。
我想做的是类似于下面的伪 XAML。这在 XAML 中可能吗?
<Image Source="{Binding Path=.Screenshot, Mode=OneWay}" Stretch="Fill" >
<Image.Style>
<Style TargetType="Image">
<Setter Property="Margin" Value="0,0,0,0" />
<Style.Triggers>
<DataTrigger Binding="{Binding Path=.Screenshot}" Value="!NullOrEmpty">
<Setter Property="Margin" Value="5,5,5,5" />
</DataTrigger>
</Style.Triggers>
</Style>
</Image.Style>
我是否应该为此使用完全不同的方法?
【问题讨论】:
-
为什么那个奇怪的绑定路径语法带有一个前导句点,
Path=Screenshot可以工作? -
只是残留物。代码来自 CustomControl,用于 ListBox
-
“图像似乎没有样式”——对我来说似乎是这样。你有什么相反的看法?这绝对是 WPF 吗?
-
见下方评论,这是用户错误。编辑问题。
标签: wpf image xaml margin datatrigger