WPF XAML-装饰元素占位符边框don';不适合控制

WPF XAML-装饰元素占位符边框don';不适合控制,wpf,xaml,wpfdatagrid,Wpf,Xaml,Wpfdatagrid,我正在wpf应用程序中添加一些错误管理。我有两个问题: 我无法将我的红色边框仅用于文本框或组合框。如果错误消息文本大于字段,则边框大于字段 我可以使消息在数据网格中的最后一行完全显示。该消息由datagrid裁剪 我想给你看这张图片,但我不能发布,没有足够的声誉点:S 这是我的密码: <Style TargetType="{x:Type ComboBox}" BasedOn="{StaticResource DefaultComboBox}" > <Setter P

我正在wpf应用程序中添加一些错误管理。我有两个问题:

  • 我无法将我的红色边框仅用于文本框或组合框。如果错误消息文本大于字段,则边框大于字段

  • 我可以使消息在数据网格中的最后一行完全显示。该消息由datagrid裁剪

我想给你看这张图片,但我不能发布,没有足够的声誉点:S

这是我的密码:

<Style TargetType="{x:Type ComboBox}" BasedOn="{StaticResource DefaultComboBox}" >
    <Setter Property="Validation.ErrorTemplate" Value="{DynamicResource ErrorSeverityValidation}" />
</Style>

<ControlTemplate x:Key="ErrorSeverityValidation">
    <ControlTemplate.Resources>
        <Style x:Key="TextblockErrorTooltip" TargetType="TextBlock">
            <Setter Property="HorizontalAlignment" Value="Center" />
            <Setter Property="VerticalAlignment" Value="Center" />
            <Setter Property="FontWeight" Value="Bold" />
            <Setter Property="Foreground" Value="White" />
            <Setter Property="Margin" Value="10 0 10 0" />
        </Style>
    </ControlTemplate.Resources>
    <DockPanel ZIndex="99" Dock="Bottom">
        <Grid DockPanel.Dock="Bottom">
            <Grid.RowDefinitions>
                <RowDefinition/>
                <RowDefinition/>
                <RowDefinition/>
            </Grid.RowDefinitions>
            <Path Grid.Row="1" Margin="15 0 0 0" Width="20" Height="10" HorizontalAlignment="Left" VerticalAlignment="Top" Data="M0,10 L10,0 20,10Z" 
                      Stroke="{StaticResource DangerBackgroundBrush}" DockPanel.Dock="Bottom" Fill="{StaticResource DangerBackgroundBrush}" Stretch="None" />
            <Border Grid.Row="2" Height="Auto"
                        Margin="0,0,0,5"
                        CornerRadius="3" DockPanel.Dock="Bottom"
                        >
                <Border.Style>
                    <Style TargetType="Border">
                        <Setter Property="Background" Value="{StaticResource DangerBackgroundBrush}"/>
                        <Style.Triggers>                            
                            <DataTrigger Binding="{Binding ErrorContent.Severity}" Value="{x:Static local:Severity.Warning}">
                                <Setter Property="Background" Value="{StaticResource WarningBackgroundBrush}"></Setter>
                            </DataTrigger>
                        </Style.Triggers>
                    </Style>
                </Border.Style>                        
                <TextBlock Style="{StaticResource TextblockErrorTooltip}" 
                               Text="{Binding ElementName=customAdorner, Path=AdornedElement.(Validation.Errors)[0].ErrorContent.ValidationMessage}" />
            </Border>
            <AdornedElementPlaceholder Grid.Row="0" Name="customAdorner">
                <Border BorderBrush="{StaticResource DangerBackgroundBrush}" BorderThickness="1.3" DockPanel.Dock="Left" />
            </AdornedElementPlaceholder>
        </Grid>
    </DockPanel>
</ControlTemplate>

如果您需要查看我的datagrid的代码,只需告诉我哪部分:)

更新

好的,通过我的研究,我认为我的问题更多的是datagridcell不能调整大小以适应内容。我已经做了很多研究,但我找不到一种方法来实现这个目的

<DataGridTemplateColumn Width="80">
                <DataGridTemplateColumn.HeaderTemplate>
                    <DataTemplate>
                        <TextBlock Width="80" TextWrapping="Wrap" 
                            Text="{Binding Source={StaticResource UIStrings}, Mode=OneWay, Path=.[AnimalEventResources.Wean_qtyWeaned],FallbackValue=@WeanNumber}" />
                    </DataTemplate>
                </DataGridTemplateColumn.HeaderTemplate>
                <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <controls:CustomIntegerBox GotFocus="OnGotFocus" HorizontalAlignment="Center" Width="70" 
                                                   Text="{Binding WeanNumber, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, ValidatesOnNotifyDataErrors=True,NotifyOnValidationError=True}" />
                    </DataTemplate>

                </DataGridTemplateColumn.CellTemplate>
            </DataGridTemplateColumn>

我尝试设置celltemplate的高度,我尝试将内容放入带有包装的文本框中。。。但是没有成功