0

私が達成しようとしていること:ユーザーがをスクロールするGridViewと、背景が遅い速度でスクロールします。

トランスフォームを使用して、これを実行できることを知っています。

しかし、私の質問は、どうすればの名前を指定できますScrollViewerGridView?のプロパティにバインドできるようにしますScrollViewer

GridViewの私のコードは非常に単純です:

        <GridView
        x:Name="itemGridView"
        AutomationProperties.AutomationId="ItemGridView"
        AutomationProperties.Name="Grouped Items"
        Grid.RowSpan="2"
        Padding="116,137,40,46"
        ItemsSource="{Binding Source={StaticResource groupedItemsViewSource}}"
        ItemTemplateSelector="{StaticResource HomeViewDataTemplateSelector}"
        SelectionMode="None"
        IsSwipeEnabled="false">
        <GridView.Background>
            <ImageBrush ImageSource="ms-appx:///Assets/galleryArticleSwish.png" Stretch="None"/>
        </GridView.Background>
        <GridView.ItemsPanel>
            <ItemsPanelTemplate>                        
                <VirtualizingStackPanel Orientation="Horizontal">
                    </VirtualizingStackPanel>
            </ItemsPanelTemplate>
        </GridView.ItemsPanel>
        <GridView.GroupStyle>
            <GroupStyle>
                <GroupStyle.HeaderTemplate>
                    <DataTemplate>
                        <Grid Margin="1,0,0,6">
                            <Button
                                AutomationProperties.Name="Group Title"
                                Style="{StaticResource TextPrimaryButtonStyle}">
                                <StackPanel Orientation="Horizontal">
                                    <TextBlock Text="{Binding GroupTitle}" Margin="3,-7,10,10" Style="{StaticResource GroupHeaderTextStyle}" />
                                    <TextBlock Text="{StaticResource ChevronGlyph}" FontFamily="Segoe UI Symbol" Margin="0,-7,0,10" Style="{StaticResource GroupHeaderTextStyle}"/>
                                </StackPanel>
                            </Button>
                        </Grid>
                    </DataTemplate>
                </GroupStyle.HeaderTemplate>
                <GroupStyle.Panel>
                    <ItemsPanelTemplate>
                        <VariableSizedWrapGrid Orientation="Vertical" Margin="0,0,80,0"/>
                    </ItemsPanelTemplate>
                </GroupStyle.Panel>
            </GroupStyle>
        </GridView.GroupStyle>
    </GridView>

XAMLで名前を付けたいのですがScrollViewer、ビジュアルツリーを介してを取得し、ViewModelにいくつかのプロパティを追加できることを知っています。しかし、それはクリーンな解決策ではありません。

では、どうすれば?の名前を設定できScrollViewerますか?

4

1 に答える 1

0

あなたはできませんし、すべきではありません。GridView コントロール テンプレートを抽出し、ScrollViewer を定義する XAML を取得したとしても、別の名前スコープの一部である可能性が高く、そのオフセット プロパティにバインドできるかどうかさえわかりません。おそらく最も簡単なオプションは、ビジュアル ツリーから ScrollViewer を見つけ、背景をスクロールして ViewChanged イベントを処理することです。たとえば、ImageBrush の AlignmentX プロパティを更新します。

于 2013-01-07T07:18:11.420 に答える