1

我在 WPF 应用程序中使用 MahApps Metro 控件,其 FlyOut 控件位于窗口底部。我正在使用他们的 MetroCircleButtonStyle 按钮,如下所示:

    <Button Width="55"
        Height="55"
        VerticalAlignment="Top"
        Style="{DynamicResource MetroCircleButtonStyle}">
  <Rectangle Width="20"
              Height="20">
    <Rectangle.Fill>
      <VisualBrush Stretch="Fill"
                    Visual="{StaticResource appbar_city}" />
    </Rectangle.Fill>
  </Rectangle>  
</Button>

我的问题是如何在弹出窗口中的这些图标下方添加文本?

史蒂夫

4

2 回答 2

5

就像是:

<Button Width="55"
        Height="55"
        VerticalAlignment="Top"
        Style="{DynamicResource MetroCircleButtonStyle}">
  <StackPanel Orientation="Vertical">
    <Rectangle Width="20"
                Height="20">
      <Rectangle.Fill>
        <VisualBrush Stretch="Fill"
                      Visual="{StaticResource appbar_city}" />
      </Rectangle.Fill>
    </Rectangle>
    <TextBlock Text="Hello" />
  </StackPanel>
</Button>

在此处输入图像描述

更新:

MetroCircleButtonStyle其本身不适合椭圆外的文本。它Template几乎是一个 Grid,有 1 个单元格和 3 个孩子在彼此之上(Ellipse另一个Ellipse和最上面的是ContentPresenter)。内部的文本实际上也不响应任何状态更改,因此具有此样式的外部Button文本与用 a 包装没有文本一样好TextBlocka StackPanel

您正在寻找什么,您可以使用AppBarButton。请注意文档状态,Due to issues with this control, AppBarButton is due to be removed for v1.0因此将其用作示例并使用类似的Style. ViewBox如果你的Button尺寸是固定的,可能会放弃。

于 2013-08-18T15:13:54.350 回答
0

Viv 的回答中,您可以在文本框元素上添加边距以将标签向下推:

<Button Width="55"
        Height="55"
        VerticalAlignment="Top"
        Style="{DynamicResource MetroCircleButtonStyle}">
  <StackPanel Orientation="Vertical">
    <Rectangle Width="20"
                Height="20">
      <Rectangle.Fill>
        <VisualBrush Stretch="Fill"
                      Visual="{StaticResource appbar_city}" />
      </Rectangle.Fill>
    </Rectangle>
    <TextBlock Text="Hello" Margin="0, 20, 0, 0" />
  </StackPanel>
</Button>
于 2016-08-24T17:19:23.940 回答