如何从xaml创建矩形字典
本文关键字:字典 创建 xaml | 更新日期: 2023-09-27 18:27:39
我在xaml中有很多矩形,我想把它们做成一个字典集合,这可能吗?
Dictionary<int, object> rectangles = new Dictionary<int, object>(9);
{
rectangles.Add(1, rectangle1);
}
这是XAML
<WrapPanel x:Name="HelmetPanel" Style="{StaticResource Panel}" >
<Rectangle x:Name="helmet_rectangle1" Fill="Aqua"
Style="{StaticResource Rectanglestyle}"
MouseDown="helmet_rectangle1_MouseDown_1"
DragEnter="helmet_rectangle1_DragEnter_1"
DragLeave="helmet_rectangle1_DragLeave_1"
MouseLeftButtonDown="helmet_rectangle1_MouseLeftButtonDown_1"
PreviewDrop="helmet_rectangle1_PreviewDrop_1" />
</WrapPanel>
您可以枚举窗口中的控件。然后匹配x:Name
属性。
var rectangles = new Dictionary<int, Rectangle>();
var index = 0;
for(var control in HelmetPanel.Children
.Where(c => c.Name != null &&
c.Name.StartsWith("helmet_rectangle")
.OrderBy(c => c.Name))
{
rectangles.Add(index++, control as Rectangle)
}
我不能检查这个代码,所以它可能有一些问题,但这基本上是一种工作方式。
话虽如此,也许知道你为什么需要这本字典会很有趣,因为似乎有更好的方法来完成你想做的事情。可能是XY问题。https://meta.stackexchange.com/questions/66377/what-is-the-xy-problem