【发布时间】:2021-12-12 23:01:01
【问题描述】:
您好,我想知道旋转网格的简单方法是什么。 我有 4 页:
private static Figure[] array;
public App ()
{
Initialize(array); // Fills array with figures with ImageSources
InitializeComponent ();
MainPage = new Page(array,Color.Red);
}
class Figure
{
private ImageSource Source {get; set;}
public Figure(ImageSource source)
{
Source = source;
}
}
class Page
{
private Color Color;
private Grid Grid;
public Page (Figure[] Figures, Color color)
{
Color = color;
// Now this is where I need help...
}
}
我希望 Grid 始终具有相同的大小并始终填充相同的数组,但取决于颜色,方向应该改变。事实上,整个网格应该根据颜色旋转 90 度。这些网格应该具有绑定到图形的 Imagesource 的 ImageButtons(带有转换器)。我考虑过在 Xaml 中创建 4Grids 并手动实现所有内容,并为每个页面提供自定义网格。我想出的另一个选择是仅创建一个网格并使用网格的旋转方法(但使用此选项我必须旋转网格的每个子项,否则图片将随网格旋转......我认为这两种解决方案都很不方便我想知道我还有什么其他选择。也许有人可以帮助我吗?非常感谢...
【问题讨论】:
-
"但是使用此选项我必须将网格的每个子元素都向后旋转,否则图片会随着网格旋转。" 有多少行和列?如果“行数 == 列数”,那么我会以不同的方式处理它。假设网格是 2x2。不要旋转网格,而是编写绑定表达式,根据颜色将图像放置在正确的单元格中。我会为这 4 个案例使用枚举。例如。
enum Grid4 {One, Two, Three, Four}、Grid4 which4 = Grid4.One、Source={Binding Image11}、public Imagesource Image11 => which4 == Grid4.One ? Figures[0] : ...; -
@ToolmakerSteve 嗨,不是图像必须切换方向。 ImageButton 必须改变方向(它包含图像)。您的解决方案在这种情况下也有效吗?如果是这样,您能否对实现更具体一些,因为我从未实现自己的绑定……也许是一个链接……
-
首先,让我澄清一下我的建议:你不能完全避免切换方向吗?不要旋转网格。不要旋转任何东西。只需更改每个单元格中显示的内容,使其在用户看来就像旋转了一样。谷歌
xamarin forms data binding- 第一个链接是Xamarin.Forms Data Binding。该 google 的其他链接也可能有所帮助。 -
如果在 X 行 Y 列的网格绑定应该是 ImageButton buttonOne 但 buttonOne 源应该绑定到图形 [theImagebuttonOneNeeds],我可以实现这一点。该页面仅获取数字。我必须自己写绑定吗? @ToolmakerSteve
-
我添加了一个答案来展示如何按照我的建议进行操作。
标签: c# .net xamarin xamarin.forms grid