在 fluentribbon 按钮中设置 xaml 图标

Set xaml icon in fluentribbon button

我使用 fluentribbon and mahapps for my GUI and want to have a button in my ribbon with a icon. I want to use xaml icons like this(不是文件)。所以我需要在 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>

这是它的样子(按钮在那里,我可以点击它,但没有文本也没有图标)

抱歉回复晚了。我花了一些时间才拿到图书馆 运行。看来你可以设置 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>

不要忘记:您始终可以提取控件默认模板。您可以查看控件是如何在内部构建的。 How to Extract Default Control Template In Visual Studio?