繁体   English   中英

如何为Wpf DataGrid使用模板?

[英]How to Use Template for 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中显示datagrid,但不显示任何内容。 有什么问题?

 <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位于网格的同一行中,因此当Slider覆盖它时,不会显示ContentPresenter。我希望这会有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM