Wpf Xaml边界问题
我正在使用Wpf Xaml边界问题,wpf,xaml,wpf-controls,Wpf,Xaml,Wpf Controls,我正在使用HeaderedContentControl显示我的标签和文本框,如下所示 <Style x:Key="ContentBorderStyle" TargetType="Border"> <Setter Property="BorderBrush" Value="Blue"/> </Style> <Style TargetType="HeaderedContentControl" x:Key="BaseLabeledItemSt
HeaderedContentControl
显示我的标签和文本框,如下所示
<Style x:Key="ContentBorderStyle" TargetType="Border">
<Setter Property="BorderBrush" Value="Blue"/>
</Style>
<Style TargetType="HeaderedContentControl" x:Key="BaseLabeledItemStyle">
<Style.Setters>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="HeaderedContentControl">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Border Grid.Column="0">
<ContentPresenter Name="header"
Content="{TemplateBinding Header}"/>
</Border>
<Border Grid.Column="1"
Style="{StaticResource ContentBorderStyle}">
<AdornerDecorator>
<ContentPresenter Name="content"
Content="{Binding RelativeSource={RelativeSource TemplatedParent},Path=Content}"/>
</AdornerDecorator>
</Border>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style.Setters>
</Style>
<HeaderedContentControl
Style="{StaticResource ResourceKey=BaseLabeledItemStyle}"
Header="Emp Name">
<!--<ContentControl>-->
<TextBox x:Name="txtName"
Text="{Binding Path=EmpName, Mode=TwoWay, ValidatesOnDataErrors=True}"/>
</HeaderedContentControl>
当我使用边框笔刷作为“蓝色”作为内容控件时,我的内容控件始终显示为蓝色边框。当出现验证错误时,当我使用ValidationOnDataerror时,我在标题内容控件边框内使用的文本框将变为红色。现在,我的要求是在进行验证时(即,当内部文本框为红色时),甚至将内容边框也更改为红色
我正在附加控件填充方式的图像。。其中(1)是我的内容控件的边框,(2)是我的文本框控件
如何根据文本框颜色更改内容控件的颜色
先谢谢你
您可以使用
DataTrigger
进行额外的突出显示
<Style x:Key="ContentBorderStyle" TargetType="Border">
<Setter Property="BorderBrush" Value="Blue"/>
<Style.Triggers>
<DataTrigger Binding="{Binding (Validation.HasError), ElementName=txtName}" Value="True">
<Setter Property="BorderBrush" Value="Red"/>
</DataTrigger>
</Style.Triggers>
</Style>
或
谢谢您的回复。由于我对多个控件使用此样式,因此不应使用“txtName”。。你能帮助我如何用我各自的文本框替换“txtName”吗?在这里,我不仅使用文本框,还将它与不同的控件一起使用,如日期时间控件和组合框。。。
<HeaderedContentControl Validation.ValidationAdornerSiteFor="{Binding ElementName=txtName}"
<Style x:Key="ContentBorderStyle" TargetType="Border">
<Setter Property="BorderBrush" Value="Blue"/>
<Setter Property="Validation.ValidationAdornerSiteFor" Value="{Binding ElementName=txtName}"/>
</Style>