如何从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>

如何从xaml创建矩形字典

您可以枚举窗口中的控件。然后匹配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