Как использовать шаблон для Wpf DataGrid?
У меня есть шаблон для datagrid, как это:
<ControlTemplate TargetType="{x:Type DataGrid}" x:Key="zoomableControl">
<ScrollViewer x:Name="scrollViewer" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto">
<Grid
<ContentPresenter>
</ContentPresenter>
<Slider Name="zoomSlider" Minimum="1" Maximum="100" Visibility="Hidden"/>
<Grid.LayoutTransform>
<ScaleTransform ScaleX="{Binding Path=Value,ElementName=zoomSlider}" ScaleY="{Binding Path=Value,ElementName=zoomSlider}"/>
</Grid.LayoutTransform>
</Grid>
</ScrollViewer>
</ControlTemplate>
и используйте это так:
<DataGrid Template="{StaticResource zoomableControl}" ...>
Я хочу показать сетку данных в ScrollViewer внутри шаблона, но он ничего не показывает. В чем проблема?
1 ответ
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<ContentPresenter >
</ContentPresenter>
<Slider Name="zoomSlider" Minimum="1" Maximum="100" Visibility="Hidden" Grid.Row="1"/>
<Grid.LayoutTransform>
<ScaleTransform ScaleX="{Binding Path=Value,ElementName=zoomSlider}" ScaleY="{Binding Path=Value,ElementName=zoomSlider}"/>
</Grid.LayoutTransform>
</Grid>
Ваши ContentPresenter и Slider находятся в одной строке Grid, поэтому ContentPresenter не отображается, так как Slider переопределяет его. Надеюсь, это поможет.