3

我在我的 GUI 中使用了 fluentribbonmahapps,并希望在我的功能区中有一个带有图标的按钮。我想使用这样的 xaml 图标不是文件)。所以我需要在 fluent:Button 中设置路径。我尝试了以下但它不起作用 - 按钮是空白的(没有文本,也没有显示图标):

<fluent:Button Name="Test">
    <StackPanel VerticalAlignment="Stretch" HorizontalAlignment="Center">
        <Path Width="40" Height="40" Stretch="Uniform" UseLayoutRounding="False" Fill="Black" Data="..."/>
        <TextBlock><Run Text="Test Button"/></TextBlock>
    </StackPanel>
</fluent:Button>

更新

这是完整的代码:

<Controls:MetroWindow  x:Class="RibbonTestProj.View.RibbonTest"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:Controls="http://metro.mahapps.com/winfx/xaml/controls"
        xmlns:fluent="urn:fluent-ribbon"
        Title="Ribbon Test" Height="474" Width="849" MinHeight="300" MinWidth="400" >
    <Grid>
        <fluent:Ribbon CanMinimize="False" CanQuickAccessLocationChanging="False" AutomaticStateManagement="false"
                       x:Name="ribbon">
            <fluent:RibbonTabItem   x:Name="test1TabItem"
                                    Header="Test1"
                                    KeyTip="I">
                <fluent:RibbonGroupBox Header="Group1" Height="84" Width="248" TabIndex="0">
                    <fluent:Button Name="Test">
                        <StackPanel VerticalAlignment="Stretch"
                                HorizontalAlignment="Center">
                            <Path Width="40"
                                Height="40"
                                Stretch="Uniform"
                                Fill="Black"
                                Data="M 10,100 C 10,300 300,-200 300,100" />
                            <TextBlock><Run Text="Test Button" /></TextBlock>
                        </StackPanel>
                    </fluent:Button>
                </fluent:RibbonGroupBox>
                <fluent:RibbonGroupBox Header="Group2" VerticalAlignment="Stretch" Height="84" Width="98" TabIndex="1">
                </fluent:RibbonGroupBox>
            </fluent:RibbonTabItem>
            <fluent:RibbonTabItem   x:Name="test2TabItem"
                                    Header="Test2"
                                    KeyTip="O">
            </fluent:RibbonTabItem>
        </fluent:Ribbon>
    </Grid>
</Controls:MetroWindow>

以及它的外观(按钮在那里,我可以点击它,但没有文字也没有图标)

在此处输入图像描述

4

1 回答 1

5

回复晚了非常抱歉。我花了一些时间让图书馆运行起来。看来你可以设置LargeIcon

<fluent:Button Name="Test">
    <fluent:Button.LargeIcon>
        <Path Width="40"
                Height="40"
                Stretch="Uniform"
                Fill="Black"
                Data="M 10,100 C 10,300 300,-200 300,100" />
    </fluent:Button.LargeIcon>
    Test Button 1
</fluent:Button>

不要忘记:您始终可以提取 Controls 默认模板。您可以查看控件是如何在内部构建的。如何在 Visual Studio 中提取默认控件模板?

于 2016-11-14T16:36:08.227 回答