gpt4 book ai didi

c# - WPF 中的可自定义工具栏

转载 作者:太空狗 更新时间:2023-10-29 20:32:19 28 4
gpt4 key购买 nike

我希望在我的应用程序中有可自定义的工具栏,就像 Visual Studio 2008 提供的那样(右键单击工具栏,自定义)。我需要一个 WPF 解决方案,但我找不到任何解决方案(无论是在 SO 上还是在 Google 上)。我确实找到了这个 Visual Studio 2010 blog entry ,这意味着即使是微软在这方面也遇到了一些麻烦。所以无论如何,为简单起见,问题是,是否有任何开源/免费框架提供此功能(它不一定是 VS2008 解决方案的精确复制品)。

最佳答案

我只是试了一下,我认为单独使用 WPF 实现所需的行为应该相对容易(不需要额外的库或框架)。我包含了将 Button 添加到 ToolBar 的示例代码,这反过来允许向工具栏添加更多按钮。

为了获得您想要的行为,我有一个工具栏按钮集合和另一个包含可用按钮的集合。工具栏 ItemsSource 将绑定(bind)到第一个集合。单击上下文菜单中的“自定义”按钮后,我将显示另一种形式,其中包含两个 ListViews(每个都绑定(bind)到一个集合)和用于添加/删除完整集合中的按钮的按钮/来自工具栏集合。 HTH.

代码:

public ObservableCollection<Button> Buttons { get; set; }

public MainWindow()
{
InitializeComponent();

Buttons = new ObservableCollection<Button>();
AddButton();

DataContext = this;
}

private void ButtonAddButton_Click(object sender, RoutedEventArgs e)
{
AddButton();
}

private void AddButton()
{
var button = new Button();
button.Content = "Add Button (" + Buttons.Count + ")";
button.Click += ButtonAddButton_Click;
Buttons.Add(button);
}

XAML:

<Grid>
<ToolBarTray>
<ToolBar ItemsSource="{Binding Buttons}">
<ToolBar.ContextMenu>
<ContextMenu>
<MenuItem Header="Customize" />
</ContextMenu>
</ToolBar.ContextMenu>
</ToolBar>
</ToolBarTray>
</Grid>

关于c# - WPF 中的可自定义工具栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3253826/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com