Здравствуйте, vit_as, Вы писали:
_>Здравствуйте, Hex66, Вы писали:
H>>Здравствуйте всем!
H>>Не могу найти возможность:
H>>- Как указать в XAML для DataGrid свойство отрисоваться VerticalScrollBar-у слева ?
_>Нужно переопределить шаблон для DataGrid
_>_> <Grid>
_> <Grid.RowDefinitions>
_> <RowDefinition Height="Auto"/>
_> <RowDefinition Height="*"/>
_> <RowDefinition Height="Auto"/>
_> </Grid.RowDefinitions>
_> <Grid.ColumnDefinitions>
_> <ColumnDefinition Width="Auto"/>
_> <ColumnDefinition Width="*"/>
_> <ColumnDefinition Width="Auto"/>
_> </Grid.ColumnDefinitions>
_> <Button Command="{x:Static DataGrid.SelectAllCommand}"
_> Width="{Binding RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}, Path=CellsPanelHorizontalOffset}"
_> Style="{DynamicResource {ComponentResourceKey TypeInTargetAssembly={x:Type DataGrid}, ResourceId=DataGridSelectAllButtonStyle}}"
_> Focusable="false"
_> Visibility="{Binding RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}, Path=HeadersVisibility, Converter={x:Static DataGrid.HeadersVisibilityConverter}, ConverterParameter={x:Static DataGridHeadersVisibility.All}}" />
_> <DataGridColumnHeadersPresenter Grid.Column="1"
_> Name="PART_ColumnHeadersPresenter"
_> Visibility="{Binding RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}, Path=HeadersVisibility, Converter={x:Static DataGrid.HeadersVisibilityConverter}, ConverterParameter={x:Static DataGridHeadersVisibility.Column}}"/>
_> <ScrollContentPresenter x:Name="PART_ScrollContentPresenter" Grid.Row="1" Grid.Column="1" Grid.ColumnSpan="2" CanContentScroll="{TemplateBinding CanContentScroll}" />
_> <ScrollBar Grid.Row="1" Grid.Column="0" Name="PART_VerticalScrollBar"
_> Orientation="Vertical"
_> Maximum="{TemplateBinding ScrollableHeight}"
_> ViewportSize="{TemplateBinding ViewportHeight}"
_> Value="{Binding Path=VerticalOffset, RelativeSource={RelativeSource TemplatedParent}, Mode=OneWay}"
_> Visibility="{TemplateBinding ComputedVerticalScrollBarVisibility}"/>
_> <Grid Grid.Row="2" Grid.Column="1">
_> <Grid.ColumnDefinitions>
_> <ColumnDefinition Width="{Binding RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}, Path=NonFrozenColumnsViewportHorizontalOffset}"/>
_> <ColumnDefinition Width="*"/>
_> </Grid.ColumnDefinitions>
_>
Спасибо, сработало. Только один момент не так.
Размер одного столбца задан как Width="*" , чтобы все колонки были видимыми и полностью занимали видимую область DataGrid.
До переноса ScrollBar-а налево, все было ОК. Сейчас место старого расположения ScrollBar-а не заполняется.
Для решения сей проблемы стоит аналогичным образом полностью переопределить шаблон для DataGridColumnHeadersPresenter ?
Или можно что поправиль в уже имеющемся коде ?