我有一个 WinForm 应用程序,我试图用 WPF 工具栏替换我的工具栏。我的解决方案现在包含两个项目:
- 定义 WPF 工具栏的 WPF 用户控件项目
- 承载 WPF 工具栏的 Windows 窗体应用程序
启用/禁用按钮、将项目添加到组合、工具栏控件的事件处理必须在 WinForm 应用程序中定义,因此为了访问它们,我执行了以下操作:
- 在 XAML 中,我为工具栏中的每个控件命名
- 在代码中,我为每个控件定义了一个公共 get 属性
这很好用,但我想知道这是否是正确的方法。有没有更好的方法来做我想做的事?
您可以发布工具栏的 XAML 吗?– 高核
我已经按照您的要求制作了我的工具栏的 XAML 的一个小示例。
<ToolBarTray>
<ToolBar Band="1" BandIndex="1">
<Button Name="btnDoSomething1">
<Image Source="/WpfExampToolbarCtrl;component/Images/DoSomething1.png" />
</Button>
<Button Name="btnDoSomething2">
<Image Source="/WpfExampToolbarCtrl;component/Images/DoSomething2.png" />
</Button>
<Separator />
<Menu>
<MenuItem Header="Create Item">
<MenuItem Header="Item 1" />
<MenuItem Header="Item 2" />
</MenuItem>
</Menu>
<Separator />
<ComboBox Name="comboCategory">
<ComboBoxItem Content="Category 1" IsSelected="True" />
<ComboBoxItem Content="Category 2" />
</ComboBox>
</ToolBar>
</ToolBarTray>
我想给工具栏中的每个控件一个名称,并在后面的代码中为每个控件定义一个 get 属性。这样我就可以从我的 WinForm 应用程序的主窗体访问工具栏的每个控件,然后做我想做的事。(添加事件,在运行时禁用/启用控件,在初始化或运行时将项目添加到组合中,......)。但据我从肯特·布加特的回答中了解到,这不是正确的方法。