0

我给了一个文本框的错误模板。但模板未正确呈现。边框的宽度是上一行中文本块的宽度。它呈现如下所示

在此处输入图像描述

但是当我滚动鼠标或最大化窗口时,边框会出现在整个文本框周围

在此处输入图像描述

我的错误模板:

<ControlTemplate x:Key="TextBoxErrorStyle">
    <AdornedElementPlaceholder>
        <Border BorderBrush="Red" BorderThickness="1"/>
    </AdornedElementPlaceholder>
</ControlTemplate>

此文本框是列表框项模板中网格的一部分。列表框是另一个Grid.IsSharedSizeScope设置为 true 的网格的一部分。

<ListBox ItemsSource="{Binding MyCollection}" 
             VerticalAlignment="Top"
             HorizontalContentAlignment="Stretch"
             Margin="10,100,22,100"
             ScrollViewer.CanContentScroll="False">
        <ListBox.ItemTemplate>
            <DataTemplate>
                <Border BorderThickness="1" CornerRadius="2" BorderBrush="LightGray">
                    <DockPanel LastChildFill="True">
                        <Grid DockPanel.Dock="Left">
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="Auto"/>
                                <ColumnDefinition Width="Auto" SharedSizeGroup="sharedColumn"/>
                            </Grid.ColumnDefinitions>
                            <Grid.RowDefinitions>
                                <RowDefinition Height="Auto"/>
                                <RowDefinition Height="Auto"/>
                            </Grid.RowDefinitions>
                            <TextBlock Grid.Column="0" Grid.Row="0" FontStyle="Italic" Text="Class" Margin="4 7 4 4"/>
                            <TextBlock Grid.Column="1" Grid.Row="0" FontStyle="Italic" Text="{Binding Row1 }" Margin="4 7 4 4" />

                            <TextBlock Grid.Column="0" Grid.Row="1" Text="Row 2"   Margin="4 11 4 4"/>
                            <TextBox Grid.Column="1" 
                                     Grid.Row="1" 
                                     Text="{Binding Quantity , UpdateSourceTrigger=PropertyChanged, ValidatesOnNotifyDataErrors=True, FallbackValue='0'}" 
                                     Validation.ErrorTemplate="{StaticResource TextBoxErrorStyle}"
                                     Margin="4 11 4 4" />
                        </Grid>
                    </DockPanel>
                </Border>
            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>

更新:

如果我删除 SharedSizeGroup 并修复列的宽度,它就可以正常工作。但我不能像那样修复列宽

4

0 回答 0