2

我在使用 WPF 功能区时遇到了很多问题。这是一些Ribbon代码。(我正在使用System.Windows.Controls.Ribbon),所有这些都RibbonWindow在 .NET 4.5/VS2012 上。

<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点是错误。

  1. Ribbon尽管将and的VerticalAlignment属性更改为 ,但我无法更改 的高度。视觉高度保持不变。RibbonTabRibbonGroupStretch
  2. 将 更改Button为 aRibbonButton会消失其中的图像,而将其保持不变会Button产生视觉影响。
  3. 如何Ribbon像在 MS Office 中一样使跨度成为窗口?ApplicationMenu登顶之类的?

编辑:将不胜感激为 WPF 提供免费的备用功能区控件库。我想在商业上使用它。

4

1 回答 1

4

对于第一个问题:很抱歉让您失望 Microsoft Ribbon 具有固定的高度,因此您无法更改它。

至于第二个问题:您应该使用LargeImageSourceandSmallImageSource而不是将图像放入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正确显示。

祝你好运。

于 2012-11-25T17:55:24.343 回答