微软功能区的问题

时间:2012-11-25 06:37:04

标签: wpf user-interface ribbon

我遇到了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点是错误。

  1. 我无法更改Ribbon的高度,尽管将VerticalAlignmentRibbonTab的{​​{1}}属性更改为RibbonGroup。视觉高度保持不变。
  2. Stretch更改为Button会消除其中的图像,同时将其保留在RibbonButton会产生视觉影响。
  3. 如何使Button跨越窗口,就像在MS Office中一样? Ribbon会出现在顶部,依此类推?
  4. 编辑:WPF的免费备用功能区控件库将不胜感激。我想在商业上使用它。

1 个答案:

答案 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。

祝你好运。