Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf Xaml边界问题_Wpf_Xaml_Wpf Controls - Fatal编程技术网

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>