у меня следующая проблема.насколько я могу поместить мои текстовые поля в просмотрщик прокрутки, мой ValidationError Adorner обрезается ScrollViewer.я нашел несколько ответов для Adorner и ScrollViewer, в которых говорилось, что мне нужно пересмотреть мой scrollviewer и добавить adornerdecorator.но это не имеет смысла для меня, и это тоже не помогает.насколько я знаю, должен ли Валидация оформляться в ближайшем AdornerDecorator.ScrollViewer по умолчанию не имеет AdornerDecorator.так кто-нибудь знает, почему мой ValidationAdorner обрезается?
Я также ищу решение:)
РЕДАКТИРОВАТЬ: кажется, ScrollContentPresenter, который исходит из шаблона ScrollViewer, вызывает проблему, потому что он имеетAdornerLayer по умолчанию.Любые идеи, как решить мою проблему?
EDIT2:
- Есть ли способ создать новый шаблон ScrollConntentPresenter без Adornerlayer?
- или есть способудалить Adornerlayer из VisualTree?
- , или я могу заставить Adornerlayer визуализировать в «верхнем / самом верхнем» AdornerLayer?
- или я могу иметь прокручиваемый контент без ScrollViewer?
вот мой xaml:
<UserControl>
<AdornerDecorator>
<Grid x:Name="RootControl">
<Grid.RowDefinitions>
<RowDefinition Height="auto" MinHeight="50"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid x:Name="main" Grid.Row="1">
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Border x:Name="InputBorder" Grid.Column="0">
<ScrollViewer VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto">
<Grid x:Name="InputContainer" HorizontalAlignment="Stretch">
<Grid.RowDefinitions>
...some rows...
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
...some columns...
</Grid.ColumnDefinitions>
<TextBox .../><!--this Validation Adorner get cut by scrollviewer-->
</Grid>
</ScrollViewer>
</Border>
</Grid>
</Grid>
</AdornerDecorator>
</UserControl>
вот мой шаблон проверки:
<ControlTemplate x:Key="ValidationTemplate" >
<DockPanel>
<AdornedElementPlaceholder Name="MyAdornedElement" />
<Grid>
<Border Background="{StaticResource BrushError}" Margin="3,0,0,0" x:Name="ErrorControl" BorderBrush="White" BorderThickness="1">
<TextBlock Margin="10,3,5,2"
Text="{Binding ElementName=MyAdornedElement,Path=AdornedElement.(Validation.Errors).CurrentItem.ErrorContent}"
Visibility="{Binding ElementName=MyAdornedElement,Path=AdornedElement.Visibility}"
Foreground="White" FontWeight="Bold">
</TextBlock>
</Border>
<Path x:Name="path" Margin="3,0,0,0" Data="M 0,10 L 10,0 " Fill="{StaticResource BrushError}"
StrokeThickness="2" Stroke="White"
/>
</Grid>
</DockPanel>
</ControlTemplate>