我遇到了WPF功能区的大量问题。这里有一些Ribbon
代码。 (我正在使用System.Windows.Controls.Ribbon
),所有这些都在.NET 4.5 / VS2012上的RibbonWindow
内。
<Ribbon VerticalAlignment="Top" Height="Auto" HorizontalAlignment="Stretch">
<RibbonTab Header="Home" Height="Auto" VerticalAlignment="Top">
<RibbonGroup Header="Save/Load" Height="Auto" Margin="0" VerticalAlignment="Top" Width="Auto">
<Grid HorizontalAlignment="Stretch">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Button x:Name="cmdLoadImage" Click="cmdLoadImage_Click" Margin="10,10,10,10" Grid.Column="0">
<Image Source="Images\load-icon.png" />
</Button>
</RibbonGroup>
</RibbonTab>
</Ribbon>
第1-2点是错误。
Ribbon
的高度,尽管将VerticalAlignment
和RibbonTab
的{{1}}属性更改为RibbonGroup
。视觉高度保持不变。Stretch
更改为Button
会消除其中的图像,同时将其保留在RibbonButton
会产生视觉影响。Button
跨越窗口,就像在MS Office中一样? Ribbon
会出现在顶部,依此类推?编辑:WPF的免费备用功能区控件库将不胜感激。我想在商业上使用它。
答案 0 :(得分:4)
对于第一个问题:抱歉让您失望的是,Microsoft已经固定高度,因此您无法更改它。
至于第二个问题:你应该使用LargeImageSource和SmallImageSource,而不是将图像放入RibboButton。
你的第三个问题不够明显,但如果你想将ApplicationMenu加入到窗口标题中,这就是答案:你必须将你的窗口类型改为RibbonWindow:
<RibbonWindow xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
</RibbonWindow>
并在后面的窗口代码中:
public partial class MainWindow : RibbonWindow
{
}
你的设计有一些错误可以解决它。
首先,您必须将功能区放在网格中:
<RibbonWindow xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Ribbon Focusable="False" Height="138" Name="MainRibbon" VerticalAlignment="Top">
<RibbonTab Header="Home" IsSelected="True" KeyTip="H">
<RibbonGroup Header="Tools" KeyTip="T">
<RibbonButton Click="btnSave_Click" ToolTipTitle="" ToolTipDescription="" Name="btnSave" LargeImageSource="..\..\Images\RibbonIcons\Save.png" Label="Save" KeyTip="S"/>
</RibbonGroup>
</RibbonTab>
</Ribbon>
</Grid>
</RibbonWindow>
注意:您必须设置LargeImageSource属性才能正确显示RibbonButton。
祝你好运。