Как использовать шаблон для 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 переопределяет его. Надеюсь, это поможет.

Другие вопросы по тегам