【问题标题】:How can I layer a Polygon over a StackPanel, which is inside a ScrollViewer?如何在 ScrollViewer 内的 StackPanel 上分层多边形?
【发布时间】:2015-03-19 09:59:58
【问题描述】:

我有一个包含单个 StackPanel 的水平 ScrollViewer,它最初是空的。 UserControls 在按钮单击时创建,并添加到 StackPanel。代码如下所示:

<ScrollViewer Grid.Column="1" Grid.Row="0" RequestedTheme="Dark" ScrollViewer.HorizontalScrollMode="Auto" ScrollViewer.HorizontalScrollBarVisibility="Auto" ScrollViewer.VerticalScrollMode="Disabled" ScrollViewer.VerticalScrollBarVisibility="Hidden">
    <StackPanel x:Name="Container" HorizontalAlignment="Left" VerticalAlignment="Top" Width="Auto">
        <!--User controls added here dynamically-->
    </StackPanel>
</ScrollViewer>

如您所见,ScrollViewer 本身位于更大的网格中。现在我想将一个多边形添加到这个 ScrollViewer,但我不能直接将它添加为子项,因为“内容只能设置一次”。如果我在代码隐藏中将它添加到 StackPanel(在设置 Canvas left、top 和 ZIndex 之后),则将 UserControls 添加到 Polygon below。我希望他们低于或高于,两者都可以。这甚至可能吗?现在,我的 Polygon 与 ScrollViewer 共享相同的 Grid Row 和 Column。这是我的多边形:

<Polygon x:Name="Gripper" Grid.Column="1" Grid.Row="0" Points="0,0 0,730 -30,750 -30,800 30,800 30,750 0,730 0,100" Stroke="#DEDEDE" StrokeThickness="1" Opacity="1.0" ManipulationMode="TranslateX" ManipulationDelta="Gripper_ManipulationDelta"> 
    <Polygon.Fill>
        <SolidColorBrush Color="#FFFFFF" Opacity="0.9"/>
    </Polygon.Fill>
    <Polygon.RenderTransform>
        <CompositeTransform />
    </Polygon.RenderTransform>
</Polygon> 

我可以在 XAML 或 C# 中添加它,但我认为我更愿意在 C# 中执行它,因为我想根据屏幕大小更改点。

【问题讨论】:

    标签: c# windows-store-apps polygon scrollviewer stackpanel


    【解决方案1】:

    在 StackPanel 和 Polygon 之间放置另一个容器控件。中间的 Grid 将让您像往常一样按行和列控制它们的位置。中间的 StackPanel 将让 Container 堆栈和 Polygon 与 Container 堆栈中的项目分开堆叠:

    <ScrollViewer>
        <Grid>
            <StackPanel x:Name="Container" HorizontalAlignment="Left" VerticalAlignment="Top" Width="Auto">
                <!--User controls added here dynamically-->
            </StackPanel>
            <Polygon />
        </Grid>
    </ScrollViewer>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-20
      • 1970-01-01
      • 2019-03-10
      相关资源
      最近更新 更多