0

次のようなデータグリッドのテンプレートがあります。

<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にデータグリッドを表示したいのですが、何も表示されません。どうしたの?

4

1 に答える 1

0
 <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 のオーバーライドとして表示されません。これが役立つことを願っています。

于 2012-07-29T07:28:55.537 に答える