gpt4 book ai didi

c# - 在 2 个不同的滚动查看器中包含一个项目

转载 作者:太空宇宙 更新时间:2023-11-03 12:20:52 26 4
gpt4 key购买 nike

我有一个网格分为 4 个网格 A、B、C 和 D。我只需要为 2 个网格 A 和 B 启用水平滚动查看器。但是,我只需要为 2 个网格 B 和 D 启用垂直滚动查看器. grid B 怎么能同时包含在第一个水平scrollviewer 和第二个垂直scrollviewer 中呢?非常感谢。

enter image description here

编辑:最大化窗口始终使其位于窗口的左上部分,如下图所示:

enter image description here

这是我添加的代码,用于确保最大化窗口远离左上区域。但是,这个问题没有任何改变!

    private void Window_StateChanged(object sender, EventArgs e)
{
if (this.WindowState == WindowState.Maximized)
{
// Left = System.Windows.SystemParameters.WorkArea.Width - Width;
Left = 200;
// Top = System.Windows.SystemParameters.WorkArea.Height - Height;
Top = 200;
}
}

关于在最大化模式下保持窗口居中的任何提示?非常感谢。

最佳答案

我假设您对 UniformGrid 并不真正感兴趣,而是在寻找一种在水平 ScrollViewer 中包含垂直 ScrollViewer 的方法。

此代码为您提供了一个 2x2 网格:甲乙CD

添加的第一个元素是横跨A和C内部的水平ScrollViewer,这个元素一分为二,底部有一个垂直ScrollViewer。B和D中的元素是简单元素。

<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>

<ScrollViewer Grid.Column="0" Grid.Row="0" Grid.RowSpan="2" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Disabled">
<Grid>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>

<Image Grid.Row="0" Source="http://via.placeholder.com/1000x1000"/>
<ScrollViewer Grid.Row="1" HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Auto">
<Image Source="http://via.placeholder.com/1000x1000"/>
</ScrollViewer>
</Grid>
</ScrollViewer>

<Image Grid.Column="1" Grid.Row="0" Source="http://via.placeholder.com/1000x1000"/>
<Image Grid.Column="1" Grid.Row="1" Source="http://via.placeholder.com/1000x1000"/>
</Grid>

编辑

这是一个新代码,可以满足您编辑中的要求。

XAML

<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>

<ScrollViewer x:Name="A" Grid.Column="0" Grid.Row="0" HorizontalScrollBarVisibility="Visible" VerticalScrollBarVisibility="Disabled" ScrollChanged="A_ScrollChanged">
<Image Stretch="None" Source="http://lorempixel.com/1000/1000/"/>
</ScrollViewer>
<ScrollViewer x:Name="B" Grid.Column="0" Grid.Row="1" HorizontalScrollBarVisibility="Visible" VerticalScrollBarVisibility="Visible" ScrollChanged="B_ScrollChanged">
<Image Stretch="None" Source="http://lorempixel.com/1000/1000/"/>
</ScrollViewer>

<ScrollViewer x:Name="C" Grid.Column="1" Grid.Row="0" HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Visible">
<Image Stretch="None" Source="http://lorempixel.com/1000/1000/"/>
</ScrollViewer>
<ScrollViewer x:Name="D" Grid.Column="1" Grid.Row="1" HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Visible" ScrollChanged="D_ScrollChanged">
<Image Stretch="None" Source="http://lorempixel.com/1000/1000/"/>
</ScrollViewer>
</Grid>

代码隐藏

    private void A_ScrollChanged(object sender, ScrollChangedEventArgs e)
{
B.ScrollToHorizontalOffset(e.HorizontalOffset);
}

private void B_ScrollChanged(object sender, ScrollChangedEventArgs e)
{
A.ScrollToHorizontalOffset(e.HorizontalOffset);
D.ScrollToVerticalOffset(e.VerticalOffset);
}

private void D_ScrollChanged(object sender, ScrollChangedEventArgs e)
{
B.ScrollToVerticalOffset(e.VerticalOffset);
}

关于c# - 在 2 个不同的滚动查看器中包含一个项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47381398/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com