【发布时间】:2017-09-03 05:28:26
【问题描述】:
我有如下ControlTemplate,如下图,想避免硬编码图片的高宽,而是想绑定Image控件的高宽
<Image Source="/Rotate.Pictures;component/Images/error.png"
Stretch="Uniform"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
Height="14"
Width="14"/>
到TextBlock的Text(TextBlock名为“ErrorText”)属性path =“Height”。图片的Height和Width都应该绑定到TextBlock的Text Height属性的Height值
有谁知道我如何做到这一点?
模板:
<Grid IsSharedSizeScope="True">
<Grid.Resources>
<Style TargetType="{x:Type TextBox}">
<Setter Property="Validation.ErrorTemplate">
<Setter.Value>
<ControlTemplate>
<StackPanel>
<AdornedElementPlaceholder>
<Border BorderBrush="Red" BorderThickness="2"/>
</AdornedElementPlaceholder>
<ItemsControl ItemsSource="{Binding}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Image Source="/Rotate.Pictures;component/Images/error.png" Stretch="Uniform" HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
Height="14"
Width="14"/>
<TextBlock x:Name="ErrorText" Text="{Binding ErrorContent}" Foreground="Red"/>
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</StackPanel>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Grid.Resources>
【问题讨论】:
-
我猜你真正想要的是 ErrorContent 上的 DataTrigger,当 ErrorContent 不为空时,它将图像可见性设置为可见。