我想要一个始终在其旁边显示错误Bob的文本框。为此,我写了下面的代码:
<TextBox Text="My TextBox" HorizontalAlignment="Center" VerticalAlignment="Center" Height="75" Width="75">
<TextBox.Template>
<ControlTemplate>
<DockPanel>
<Image..."error bob image is added here"/>
<Border BorderBrush="Red" BorderThickness="1.2"/>
</DockPanel>
</ControlTemplate>
</TextBox.Template>
</TextBox>
我能够在设计师中看到同样的东西。但是,当我运行此解决方案时,我只看到一个带有红色边框的文本框。图像(即错误bob)不可见。谁能说明为什么会这样?
答案 0 :(得分:0)
尝试设置LastChildFill="True"
的属性DockPanel
:
<TextBox Text="My TextBox" HorizontalAlignment="Center" VerticalAlignment="Center" Height="75" Width="75">
<TextBox.Template>
<ControlTemplate>
<DockPanel LastChildFill="True">
<TextBox BorderThickness="0"/>
<TextBlock Text="error bob image is added here" Width="100"/>
<!--<Image..."error bob image is added here"/>-->
<Border BorderBrush="Red" BorderThickness="1.2"/>
</DockPanel>
</ControlTemplate>
</TextBox.Template>
</TextBox>
您可以TextBlock
使用Width
代替Image
来显示文字“错误信息”。
<强>更新强> 我仔细检查了它的确有效。请看下图:
此外,您可以使用StackPanel
,如果可以的话:
<TextBox Text="My TextBox" HorizontalAlignment="Center" VerticalAlignment="Center" Height="75" Width="275">
<TextBox.Template>
<ControlTemplate>
<StackPanel Orientation="Horizontal">
<TextBox BorderThickness="0"/>
<TextBlock Text="error bob image is added here" Width="100"/>
<Border BorderBrush="Red" BorderThickness="1.2"/>
</StackPanel>
</ControlTemplate>
</TextBox.Template>
</TextBox>