问题 包装板可以互相对齐吗?

玻璃灯

众所周知的成员
加入
2019年11月22日
消息
126
编程经验
Beginner
与上面的标签对齐(因为它们不相同)。
有没有办法让他们彼此保持一致,所以他们的中心被排队了?
 

玻璃灯

众所周知的成员
加入
2019年11月22日
消息
126
编程经验
Beginner
这里是。

C#:
<Window x:Class="WpfApp1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:WpfApp1"
        mc:Ignorable="d"
        Title="MainWindow" Width="452" Height="290"  WindowStartupLocation="CenterScreen" >


    <Grid x:Name="MyGrid" Width="Auto">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="Auto" />
            <ColumnDefinition Width="Auto" />
            <ColumnDefinition Width="Auto" />
            <ColumnDefinition Width="Auto" />
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="Auto"/>
        </Grid.RowDefinitions>
        
        <TextBlock Margin="5,5,5,5" Text="Row A Column A" Grid.Row="0" Grid.Column="0" HorizontalAlignment="Center" VerticalAlignment="Center"></TextBlock>
        <TextBlock Margin="5,5,5,5" Text="Row A Column B" Grid.Row="0" Grid.Column="1" HorizontalAlignment="Center" VerticalAlignment="Center"></TextBlock>
        <TextBlock Margin="5,5,5,5" Text="Row A Column C" Grid.Row="0" Grid.Column="2" HorizontalAlignment="Center" VerticalAlignment="Center"></TextBlock>
        <TextBlock Margin="5,5,5,5" Text="Row A Column D" Grid.Row="0" Grid.Column="3" HorizontalAlignment="Center" VerticalAlignment="Center"></TextBlock>
        <TextBlock Margin="5,5,5,5" Text="Row B Column A" Grid.Row="1" Grid.Column="0" HorizontalAlignment="Center" VerticalAlignment="Center"></TextBlock>
        <TextBlock Margin="5,5,5,5" Text="Row B Column B" Grid.Row="1" Grid.Column="1" HorizontalAlignment="Center" VerticalAlignment="Center"></TextBlock>
        <TextBlock Margin="5,5,5,5" Text="Row B Column C" Grid.Row="1" Grid.Column="2" HorizontalAlignment="Center" VerticalAlignment="Center"></TextBlock>
        <TextBlock Margin="5,5,5,5" Text="Row B Column D" Grid.Row="1" Grid.Column="3" HorizontalAlignment="Center" VerticalAlignment="Center"></TextBlock>
        <TextBlock Margin="5,5,5,5" Text="Row C Column A" Grid.Row="2" Grid.Column="0" HorizontalAlignment="Center" VerticalAlignment="Center"></TextBlock>
        <TextBlock Margin="5,5,5,5" Text="Row C Column B" Grid.Row="2" Grid.Column="1" HorizontalAlignment="Center" VerticalAlignment="Center"></TextBlock>
        <TextBlock Margin="5,5,5,5" Text="Row C Column C" Grid.Row="2" Grid.Column="2" HorizontalAlignment="Center" VerticalAlignment="Center"></TextBlock>
        <TextBlock Margin="5,5,5,5" Text="Row C Column D" Grid.Row="2" Grid.Column="3" HorizontalAlignment="Center" VerticalAlignment="Center"></TextBlock>
        <TextBlock Margin="5,5,5,5" Text="Row D Column A" Grid.Row="3" Grid.Column="0" HorizontalAlignment="Center" VerticalAlignment="Center"></TextBlock>
        <TextBlock Margin="5,5,5,5" Text="Row D Column B" Grid.Row="3" Grid.Column="1" HorizontalAlignment="Center" VerticalAlignment="Center"></TextBlock>
        <TextBlock Margin="5,5,5,5" Text="Row D Column C" Grid.Row="3" Grid.Column="2" HorizontalAlignment="Center" VerticalAlignment="Center"></TextBlock>
        <TextBlock Margin="5,5,5,5" Text="Row D Column D" Grid.Row="3" Grid.Column="3" HorizontalAlignment="Center" VerticalAlignment="Center"></TextBlock>
        <TextBlock Margin="5,5,5,5" Text="Row E Column A" Grid.Row="4" Grid.Column="0" HorizontalAlignment="Center" VerticalAlignment="Center"></TextBlock>
        <TextBlock Margin="5,5,5,5" Text="Row E Column B" Grid.Row="4" Grid.Column="1" HorizontalAlignment="Center" VerticalAlignment="Center"></TextBlock>
        <TextBlock Margin="5,5,5,5" Text="Row E Column C" Grid.Row="4" Grid.Column="2" HorizontalAlignment="Center" VerticalAlignment="Center"></TextBlock>
        <TextBlock Margin="5,5,5,5" Text="Row E Column D" Grid.Row="4" Grid.Column="3" HorizontalAlignment="Center" VerticalAlignment="Center"></TextBlock>
        <TextBlock Margin="5,5,5,5" Text="Row F Column A" Grid.Row="5" Grid.Column="0" HorizontalAlignment="Center" VerticalAlignment="Center"></TextBlock>
        <TextBlock Margin="5,5,5,5" Text="Row F Column B" Grid.Row="5" Grid.Column="1" HorizontalAlignment="Center" VerticalAlignment="Center"></TextBlock>
        <TextBlock Margin="5,5,5,5" Text="Row F Column C" Grid.Row="5" Grid.Column="2" HorizontalAlignment="Center" VerticalAlignment="Center"></TextBlock>
        <TextBlock Margin="5,5,5,5" Text="Row F Column D" Grid.Row="5" Grid.Column="3" HorizontalAlignment="Center" VerticalAlignment="Center"></TextBlock>
        <TextBlock Margin="5,5,5,5" Text="Row G Column A" Grid.Row="6" Grid.Column="0" HorizontalAlignment="Center" VerticalAlignment="Center"></TextBlock>
        <TextBlock Margin="5,5,5,5" Text="Row G Column B" Grid.Row="6" Grid.Column="1" HorizontalAlignment="Center" VerticalAlignment="Center"></TextBlock>
        <TextBlock Margin="5,5,5,5" Text="Row G Column C" Grid.Row="6" Grid.Column="2" HorizontalAlignment="Center" VerticalAlignment="Center"></TextBlock>
        <TextBlock Margin="5,5,5,5" Text="Row G Column D" Grid.Row="6" Grid.Column="3" HorizontalAlignment="Center" VerticalAlignment="Center"></TextBlock>
    </Grid>
</window>
 

跳伞运动员

工作人员
加入
2019年4月6日
消息
2,893
地点
切萨皮克,va.
编程经验
10+
现在忙于其他东西,但这可能有助于让大脑细胞达到差异:

从总是令人敬畏的Josh Smith:
 

sh

众所周知的成员
加入
2018年9月5日
消息
1,982
编程经验
10+
我只是很好奇为什么大小改变,看起来裕额没有应用?是那个正常的行为吗?我之前使用过MulkBlocks的边距,而没有任何问题。
这margin is being applied. If it wasn't I wouldn't have given it to you with margin parameters. Yes, its normal behaviour. They are not the same controls, as Skydiver's first link points out as I also hinted at previously in this topic about element fragments. Text blocks are like Grid.ColumnDefinitions in that they are fragment elements of the Grid control, hence why we can add Column/RowDefinitions in our Xaml code, because they too are just like the Textblocks. As I said here :
网格.ColumnDefinition是网格控制的子片段。
同样适用于您使用的这些元素片段。它们只是另一个控制的元素。保证金属性在您使用的控制中工作;和文本块元素。
 

玻璃灯

众所周知的成员
加入
2019年11月22日
消息
126
编程经验
Beginner
现在忙于其他东西,但这可能有助于让大脑细胞达到差异:

从总是令人敬畏的Josh Smith:

谢谢你的那些链接,我现在更了解差异。

编辑:跳伞运动员,在你的榜样中使用了Wrappanel,但仰地说你应该使用网格吗?我没有得到它  :( 在剪毛示例中,网格定义被设置为自动,但包装不存在,这就是为什么我认为包装面板是要使用的。

如果您在示例中所做的那样使用自动值,它们为什么必须移动或移动到不同的网格。

我想在这一点上澄清一下,就像我理解它到目前为止他们(第一个)必须在某种程度上转移到另一个小区,例如,只使用两个标签,假设用户已经崩溃了,如下所示:

注释2020-01-11 142406.jpg.


减少窗口的宽度会导致第二个标签移动到另一个网格单元:

注释2020-01-11 142635.jpg.


"Row A Column B"显然是它的细胞中的错误文本,但它的点是它在网格内移动。所以当你问"他们为什么要搬家"这就是我脑海中出现的,对我来说,他们搬到了一个不同的细胞,但也许我只是使用错误的术语或什么?

所以在第一张图片中,行已经减少到一个,并且列到了两个,在代码中完成(实际上不是当然,我在这里谈论地说)然后窗口的调整大小将成为一个新的行,将标签移动到该新单元格,然后删除第二列,右图?第二个编辑:这是跳伞者代码的代码,但我看不到它与导致它发生的榜样的区别,他甚至没有使用网格。我以为我明白这一点更好,但似乎我仍然在努力掌握这一小事。
 
Last edited:

跳伞运动员

工作人员
加入
2019年4月6日
消息
2,893
地点
切萨皮克,va.
编程经验
10+
My response in post #19 was just to address your original question whether there was an easy way to get the WrapPanel to line up the items vertically. I also took advantage of the behavior of a TextBox in a Border to force the text to the bottom of the border area, and thereby force everything below it to line up horizontally as you were seeking to do with your numbers below your text. The resizing behavior just came for free.

所有那样就像驾驶汽车自动变速箱一样。 @sheepings. 将教我们如何使用手动传输驱动。我们一直在讨论脱机,我有一个并行查询。他足以分享他的知识。
 

sh

众所周知的成员
加入
2018年9月5日
消息
1,982
编程经验
10+
Your recent problem with resizing the window is a different problem, and one which should be addressed on a new topic when you reach that stage. First, stick with this topic and write the Xaml as I have shown and explained to you. Give your Grid a name, and then write your C# code in your Code behind file for adding the functionality of adding new controls to your grid. Once you reach this point, you will probably end up using a wrap panel around all of the grids items, (that is of course if you don't want to bother writing a lengthy class based on the Window Size from the Windows SizeChangedEventArgs to structure your grids elements based on the window size and how many items are in your grid.) Yes this would be avoided by using a wrap panel. That being said, I'd prefer to write an explicit class to handle the grids elements when the Window changes size. I don't think there are many programmers who would do it my way, so I am not advising that you do either, as the simpler thing at that point would be to use a wrap panel and be done with it. As an added exercise, you could always remove your wrap panel and write an explicit class to handle your Grids elements when your window size changes.
您已经使用了正确的结构。你正在使用 a 网格,这是正确的控制。但我试图让您避免使用包装面板,因为您将通过编写XAML代码来了解更多信息,但更重要的是通过在文件后面写出自己的代码来控制所有逻辑来控制如何添加新项目和删除了。包括当您调整窗口大小时会发生什么。这是通过编写类,并从文件后面的代码操作网格行为都是可行的。提供您的商品在XAML标记中写出的商品,您可以在文件后面的代码中有效地操纵它们。

跳伞者已经做了什么,是用物品控制,虽然他的榜样没有错,但它不是我将如何发展它。以及这是因为它做了我不想做的事情。看这里 : WPF ItemsControl示例 随着数据模板通常需要DEVS使用某种 "layout" panel 将数据放在上面。

这ItemsControl already uses a stack panel inherently.  :) 无论如何,我自己和跳伞者在跳伞运动员为你写出了自己的榜样之前讨论了自己。他认为网格在不使用堆栈或包装面板的情况下相当复杂,因此使用他的数据模板与项目控制器作为避免使用电网控制的方法。

但是,如果您想学习,那么您应该挑战挑战课程并试图了解如何构建该类以控制网格元素的流量,因为如果您在XAML中写入它。我为这条路线提供建议的主要原因之一是因为您将更多地了解XAML的内容,而不是您将为您提供简单的控制。

无论如何,在Skydiver Message之后。他问我一些关于如何实际接近他所面临的一些问题的一些非常真实的问题。凭借他的许可,我分享了一些聊天日志,因为他和我也可能帮助您了解基于您可能答案的一些问题的一些方法。

请记住,我不是WPF的主人,但我在这个工作和客户和个人项目上工作,所以我熟悉找到了自己的方式,我确实知道一些整洁的技巧,但可能有这一主题上一些其他开发者的点可能会说停止。坚持,稍等;为什么不只是让他使用堆栈和包装板?好吧,如果他愿意,他可以使用它们,但我建议我们的OP采取这条路线的主要原因之一;是学习XAML,并了解如何操纵他们在XAML中开始的结构,并通过制作托管类来处理与网格定义和Windows实际宽度涉及的不同变量进行处理,以便学习此操作被调整大小。

以下是Skydiver在引号中的问题(讨论过董事会):

如何确定必须创建有多少列和行定义。
通过确定控件是否驻留在该列中。当程序的用户添加更多控件时,添加更多定义。如果您的窗口空间空间用于新定义,则无法选择,但最终添加(我可能会纠正),但要添加允许我们使用垂直和水平滚动条的项目,除非我弄错另一个控制,但我很肯定我没有弄错。

如何确定必须创建有多少列和行定义。
通过在XAML中创建您开始关注的金额,您可以计算您的数量,在类中跟踪这一点,然后在用户添加新控件时,您可以添加新的列/行定义,并添加新控件或添加新控件或添加新控件或添加新控件或添加新控件该列的碎片再次,在课堂上跟踪这一点。

记住我希望他这样做的主要原因是为了大多学习XAML,因为网格是正确的方法。

If you say, that "没有人,你只是把这些定义硬了,进入了XAML",那么您如何处理正在添加的更多项目,或者窗口调整大小?
这就是课程所在的。这就是循环的网格列的循环,并从中收集实际宽度。喜欢 :

C#:
            double t_width = default;
            foreach (ColumnDefinition cd in MyGrid.ColumnDefinitions)
            {
                t_width += cd.ActualWidth;
            }
            Console.WriteLine($"Total Width is @ { t_width }");
基本上,您最终会包含所有列的总大小,允许您设置窗口的整体大小。此时,我还应该指出你没有得到控件的宽度或"fragment" controls in the same way as in windows. While WPF does have a width property, this is not what you want to use as this property is actually used for binding. Width is also a DependencyProperty so it does allow binding and as I said above and it must be set on the UI thread also. It is also worth mentioning that this will not give you the width unless measure is called. You can read more on that one here : uieelement.measure(size)方法(system.windows)

鸡肉和鸡蛋问题:mygrid.columndefinitions将开始空,因为我不知道有多少列将适合窗口。
不是一个问题。如果没有,那么你从没有开始。
如果我通过硬编码列使其非空,我需要确保列和项目的数量超过窗口的大小。
例如。即使我定义了100列,但还有一个项目,什么是适当的宽度?并相反,如果我只定义9列,但用户设置了100个窄固定宽度项目?
宽度是什么?定义?定义只会设置为自动。没有其他的。我已经在上面回答了,通过使用托管类来欺骗添加要添加到网格中的每个项目的新定义。通过使用Auto属性,网格定义将按比例地处理子控件的大小。

然后我继续说明这一点:
顺便说一句,不要暗示相信我谴责你建议使用控件来简化应该如何完成这一点。众所周知,它可以用这些面板完成。但是,使用网格来建立该结构,然后在稍后的点添加托管类以控制如何将项目添加到其中的托管类。

我希望我没有错过任何问题或错过申请答案。我很高兴回答任何问题或提供一些基本的示例代码,提供我尚未与其他工作/琐事占用。记住,我不是聪明的人,我没有所有的答案。  (y)

编辑:我为一些未成年字错误道歉。当我一整天都在和关闭这篇文章时,我不能被摧毁,因为我终于找到了发布时间。
 
Last edited:

跳伞运动员

工作人员
加入
2019年4月6日
消息
2,893
地点
切萨皮克,va.
编程经验
10+
如果您的窗口空间空间用于新定义,则无法选择,但最终添加(我可能会纠正),但要添加允许我们使用垂直和水平滚动条的项目,除非我弄错另一个控制,但我很肯定我没有弄错。
这easier way to do this is to put the Grid inside a ScrollViewer. The scrollbars will be inserted as needed (or always depending on what attributes you set). See my previous post #19 where ItemsControl is inside a ScrollViewer.
 

跳伞运动员

工作人员
加入
2019年4月6日
消息
2,893
地点
切萨皮克,va.
编程经验
10+
宽度是什么?定义?定义只会设置为自动。没有其他的。我已经在上面回答了,通过使用托管类来欺骗添加要添加到网格中的每个项目的新定义。通过使用Auto属性,网格定义将按比例地处理子控件的大小。
这"widths"我指的是各个项目的宽度。在第19页中查看第一个屏幕截图。请注意,每个样本与颜色名称的长度一样宽。 OP的目标是以表格格式呈现出现的东西,其中一切都均匀大小。
 

sh

众所周知的成员
加入
2018年9月5日
消息
1,982
编程经验
10+
The "widths"我指的是各个项目的宽度。
这width of each item or control will be set by the <ColumnDefinition Width="Auto" /> property, and I suspect and expect that any individual size set on any child controls will be or should be ignored with Width="Auto" set. What the auto property does, is; it chooses the correct size for the biggest element in its grid and the control with the most text will be the deciding factor for the total width of that column and all rows beneath it.
 

跳伞运动员

工作人员
加入
2019年4月6日
消息
2,893
地点
切萨皮克,va.
编程经验
10+
是的,是的,它确实如此,这是一个结果,当物品的宽度不匹配时,它得到了一个......
screenshot_1.png.


请注意,列宽不同。 (我打开了网格线,使每列的大大大。)

XML:
<Window x:Class="Scratch.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:Scratch"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800">
    <Grid ShowGridLines="True">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="Auto" />
            <ColumnDefinition Width="Auto" />
            <ColumnDefinition Width="Auto" />
        </Grid.ColumnDefinitions>

        <Grid.RowDefinitions>
            <RowDefinition Height="Auto" />
            <RowDefinition Height="Auto" />
        </Grid.RowDefinitions>

        <TextBlock Text="Short" Grid.Row="0" Grid.Column="0" />
        <TextBlock Text="Long Passsage" Grid.Row="0" Grid.Column="1" />
        <TextBlock Text="Short Text" Grid.Row="0" Grid.Column="2" />
        <TextBlock Text="3" Grid.Row="1" Grid.Column="0" />
        <TextBlock Text="5" Grid.Row="1" Grid.Column="1" />
        <TextBlock Text="8" Grid.Row="1" Grid.Column="2" />

        <Grid.Resources>
            <Style TargetType="TextBlock">
                <Setter Property="Margin" Value="5" />
                <Setter Property="HorizontalAlignment" Value="Center" />
                <Setter Property="VerticalAlignment" Value="Center" />
            </Style>
        </Grid.Resources>
    </Grid>
</Window>
 

跳伞运动员

工作人员
加入
2019年4月6日
消息
2,893
地点
切萨皮克,va.
编程经验
10+
How do you know how many columns could fit in the window at runtime? From post #27, won't the sum of the ActualWidth's be the same as the window width?

如果另一对文本和数字(如)"Liverpool",13}将添加,您如何确定可以添加另一个列定义,并仍然适合窗口与确定它们应该是新行吗?

虽然上面的XAML硬编码了网格位置,但请召回原始问题的网格位置动态分配。
 

sh

众所周知的成员
加入
2018年9月5日
消息
1,982
编程经验
10+
From post #27, won't the sum of the ActualWidth's be the same as the window width?
我们的操作并没有像你一样添加3列。他想用控件填充窗口,以及最好的方法是使用Auto属性。但是,如果您只想添加3列,您将最好使用:
C#:
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="1*" />
            <ColumnDefinition Width="1*" />
            <ColumnDefinition Width="1*" />
        </Grid.ColumnDefinitions>

您可以使用其他属性,但您需要尝试自己找到适合您的人。更改定义宽度的结果如下:

screenshot_61.jpg.

如果另一对文本和数字(如)"Liverpool",13}将添加,您如何确定可以添加另一个列定义,并仍然适合窗口与确定它们应该是新行吗?
Provide a code example for your question so I can understand what it is you're asking. Regarding : how do you determine that another column definition could be added and still fit in the Window?
This is why one of you needs to start writing a class to handle the actual windows size and to determine how many grid columns have been added and while doing so; you should ascertain whether or not you should use the Auto property or 1* or and to just use 1* for the last column added. 1* will fill the remaining space at the end of the last column.
虽然上面的XAML硬编码了网格位置,但请召回原始问题的网格位置动态分配。
上面的XAML是为了说明结构如何看待。当将在窗口中添加多少个控件而不是开发人员时,它在将部分XAML写出局部XAML到部分结构非常有意义。 XAML表明,可以构造电网以提供目前堆叠面板和包装板的预期结构。您俩都可以构建一个可以动态构建此结构的类并将其应用于视图。如果您可以在XAML中执行此操作,可以动态地进行。我早些时候在这个主题上说,这将是一个需要的步骤,而且由于时间限制,我不会写它,这是它很多努力,大声笑,但如果你想学习,它是一个伟大的锻炼跳伞运动员。特别是对于未来的参考,以防你被客户的任务只是肖恩·塞克斯顿在他的博客上。  ;)
 
Last edited:

玻璃灯

众所周知的成员
加入
2019年11月22日
消息
126
编程经验
Beginner
你好!抱歉离开这么长时间,我经历了一些......东西并结束了相关的疾病,而且与这个主题无关!诚实的  :)

在吸收以来的帖子之前,我只是想说我没有逃跑,并将尝试创建一个类来管理该网格。我很快回来。
 

跳伞运动员

工作人员
加入
2019年4月6日
消息
2,893
地点
切萨皮克,va.
编程经验
10+
希望你感觉好些。别担心, @sheepings. 我有一个方面的对话,在他埋葬工作时,我们还将其搁置了一下。
 

sh

众所周知的成员
加入
2018年9月5日
消息
1,982
编程经验
10+
我一直在努力复活这个话题。我现在就是如此多,我可以随时随地呼吸,以及个人项目和新的商业企业,我没有时间致力于在这个上完成写作的Git!我很快就会搞定。我希望,我也希望你感觉更好的玻璃灯。欢迎回来!
 

玻璃灯

众所周知的成员
加入
2019年11月22日
消息
126
编程经验
Beginner
我现在一切顺利,准备摇滚和滚动  (y)

在考虑尝试这样做之后,我决定最初稍微简化我的目标,我将使用50x50按钮作为网格中的项目,然后我会建立使用textblocks,这样我可以使用它常数50开始。也许这更容易,也许不是,我不确定,但似乎它会是。

我对专门创建应用程序的初步思考,练习这是如下所示(就采取第一步而言,我知道这不完整)。
GridManger类将包含诸如物品的宽度/高度(在此简化案例中的50个字段(50,因此我使用单个尺寸字段而不是两个用于宽度和高度),这将转换为网格单元宽度和高度。以及当前列和行数。此类需要能够访问MainWindow的宽度和高度(知道应该有多少行/列),并且显然网格本身。

在具有电流宽度和窗口高度的特性的视图中似乎是必要的,不确定还有其他还可以在这里进行,但我认为这将变得显而易见。

所以从那里开始实施它并立即被卡住了  :)

在将窗口大小绑定到VM中的属性之后,我使GridManger类就像上面描述的那样,在Contructor中,我将调用一种方法来设置列和行的数量等于主要的Windows大小除以50.也许这是错误的方式,我不知道,但GridManager类没有看到网格(MyGrid),我不知道如何解决这个问题,这就是我击中墙壁的地方我进一步走了。我的想法是从主窗口再次调用该方法调整事件处理程序,以基于窗口大小维护正确的行/列。或者实际上可能在VM的窗口宽度和高度属性稳定器中更好地放置方法调用。

我还遇到了从GM的VM WindowsHeight和WindowWidth属性引用。我可以认为让GM类看到VM的唯一方法是通过引用它的结构,但是它的范围将被限制在组织中,并且这不会有用。

处理范围绝对是我的克星。我感觉到我做错了  :)

请不要觉得有任何匆忙回复,我不介意等待。
 
最佳 底部