XAML 动态生成组合框

6ojccjat  于 2022-12-07  发布在  其他
关注(0)|答案(1)|浏览(158)

我用一些“GroupBox”构建了一个简单的设置,其中有一些“DimBoxEditors”。现在,在其中一个组中,我还添加了一个“Button”。(AddMaterialsBtn),当这个按钮被按下时,我想创建一个包含“组合框”的新“组框”,我已经完成了这项工作,我面临的唯一问题是所创建的“组框”的“方向”,它会在输出窗口中水平地创建新的组框,而我希望它改为垂直地创建。创建组框的代码如下所示:

private void AddMaterialsBtn_Click(object sender, System.Windows.RoutedEventArgs e)
    {
        LayoutControl layoutControl = (LayoutControl)layoutItems;
        

        LayoutGroup layoutGroup = new LayoutGroup()
        {
            Name = "Materials" + MaterialButtonCounter,
            Tag = "Materials" + MaterialButtonCounter,                
            IsCollapsible = true,
            MinWidth = 300,
            HorizontalAlignment = System.Windows.HorizontalAlignment.Left,
            Orientation = System.Windows.Controls.Orientation.Vertical,
            View = DevExpress.Xpf.LayoutControl.LayoutGroupView.GroupBox,
        };           

        ComboBox dimBox = new ComboBox()
        {
            Name = "rawMaterials" + MaterialButtonCounter,
            AllowRejectUnknownValues = true,
            AutoComplete = true,
            MaskAutoComplete = DevExpress.Xpf.Editors.AutoCompleteType.Optimistic,
            Width = 145, 
            HorizontalAlignment = System.Windows.HorizontalAlignment.Left                
        };

        LayoutItem layoutItem = new LayoutItem()
        {
            Content = dimBox,
            Name = "RawMaterials" + MaterialButtonCounter,
            HorizontalAlignment = System.Windows.HorizontalAlignment.Left,
            Width = 220
        };

        _ = layoutGroup.Children.Add(layoutItem);
        _ = layoutControl.Children.Add(layoutGroup);
        

        MaterialButtonCounter++;
    }

这可以工作,它创建的组合框非常好,但我不能让他们创建垂直而不是水平。
对不起,如果这不是超级好制定,不要犹豫,要求任何澄清。

  • 谢谢-谢谢
hsgswve4

hsgswve41#

当然,这个问题是固定的权利后,我问的问题,不知道这是否是有用的任何人,但会离开的答案无论哪种方式。
假设我们的布局控件名为“layoutItems”,而我们要将新组附加到的布局组名为“testGroup”:

LayoutGorup findGroup = (LayoutGroup)layoutItems.FindName("testGroup");

然后只需将想要通过按下按钮创建的LayoutGroup添加到“findGroup”中,然后它将在XAML中定义的“Orientation”中创建新组

相关问题