【问题标题】:How can I have a StackPanel Inside a MenuFlyoutItem in windows 8.1 app xaml如何在 Windows 8.1 应用程序 xaml 中的 MenuFlyoutItem 中有一个 StackPanel
【发布时间】:2015-09-04 21:34:04
【问题描述】:

MenuFlyout 是这样定义的。我不想只在 MenuFlyoutItem 中设置 Text,我希望在其中有一个 StackPanel 可以容纳一个 Image 和一个 TextBox。

<MenuFlyout x:Key="HeaderMenuFlyout">
        <MenuFlyout.MenuFlyoutPresenterStyle>
            <Style TargetType="MenuFlyoutPresenter">
                <Setter Property="BorderBrush" Value="CornflowerBlue"/>
                <Setter Property="BorderThickness" Value="5"/>
            </Style>
        </MenuFlyout.MenuFlyoutPresenterStyle>
        <MenuFlyoutItem Text="Cloud"
                        Tag="Cloud" />
        <MenuFlyoutItem Text="This PC" Tag="This PC"/>

    </MenuFlyout>

我该怎么做?这是一个例子

【问题讨论】:

  • 您真的需要 MenuFlyout 吗?或者您可以只使用弹出窗口?

标签: c# xaml windows-8.1


【解决方案1】:

这将是一种快速但肮脏的方式。

<MenuFlyoutItem Text="Hello" >
 <MenuFlyoutItem.Template>
  <ControlTemplate TargetType="MenuFlyoutItem">
   <StackPanel Orientation="Horizontal">
    <SymbolIcon Symbol="Clock" />
    <TextBlock Text="{TemplateBinding Text}" />                    
   </StackPanel>
  </ControlTemplate>
 </MenuFlyoutItem.Template>
</MenuFlyoutItem>

或者您可以扩展 MenuflyoutItem 并为图像/符号添加另一个依赖项属性,这样它就不会在模板中进行硬编码。

【讨论】:

  • 可能需要提取MenuFlyoutItem的实际样式。你可以使用 blend 来做到这一点。
猜你喜欢
  • 1970-01-01
  • 2015-03-11
  • 1970-01-01
  • 2016-06-06
  • 1970-01-01
  • 2015-06-19
  • 2016-06-10
  • 1970-01-01
  • 2017-02-09
相关资源
最近更新 更多