我正在尝试在.NET 4.0项目中使用RibbonControlLibrary。我有一个带有菜单项的应用程序菜单,如果不满足某些条件,则需要将其删除。我尝试使用BooleanToVisibilityConverter
,它可以很好地删除菜单项,但菜单本身并没有改变大小,所以在仍然可见的项目下有一个奇怪的空白。
这是使用绑定将菜单项设置为折叠时的样子:
这应该是这样的:
如果我将菜单项硬编码为折叠,它看起来很好,但是当我使用绑定或触发器来更改Visibility
值时,这是错误的。这让我觉得有一个错误导致菜单在项目更改时不重新计算大小。
以下是功能区的XAML:
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:ribbon="clr-namespace:Microsoft.Windows.Controls.Ribbon;assembly=RibbonControlsLibrary">
<Window.Resources>
<BooleanToVisibilityConverter x:Key="converter" />
</Window.Resources>
...
<ribbon:Ribbon>
<ribbon:Ribbon.ApplicationMenu>
<ribbon:RibbonApplicationMenu>
<ribbon:RibbonApplicationMenuItem Header="Item 1"
Visibility="{Binding TestProperty, Converter={StaticResource converter}}" />
<ribbon:RibbonApplicationMenuItem Header="Item 2" />
</ribbon:RibbonApplicationMenu>
</ribbon:Ribbon.ApplicationMenu>
</ribbon:Ribbon>
我也尝试使用触发器将Height
设置为0,但效果是一样的。是否有我遗失的东西或者这是色带库中的错误?