首页 文章

Windows 8.1应用程序中的自定义按钮

提问于
浏览
2

我需要在Windows 8.1应用程序中创建一个具有图标和文本标签的按钮 . 该图标将是Segoe UI Symbols的符号,文本标签将是较小文本大小的Segoe UI Semibold .

我希望能够使用不同的图标和文本标签在应用程序中的不同位置重复使用该按钮 .

怎么表明我这个?我可以创建一个按钮,然后编辑ContentPresenter,使其具有一个带有两个TextBlocks的水平方向的堆栈面板,但是我怎么能重用它呢?我怎么能改变两个不同文本块中的文本?

我应该为每个textblock字符串创建一个单独的自定义控件,其中包含单独的依赖项属性吗?我很想听听你会做什么 .

谢谢

2 回答

  • 5

    创建一个简单的 Style . 为了方便起见,我将基于标准化的 AppBarButton 风格 . 您可以将其格式化为您想要的任何大小(我已经做了类似的事情来制作更大的按钮或侧面有文字的按钮) .

    主图标只是 ContentPresenter ,使用 TemplateBinding 绑定到 Content . 确保将 FontFamily 设置为 Segoe UI Symbol . 从 AutomationProperties.Name 拉出文本标签,类似于 AppBarButton 样式的方式 .

    然后,每当你想使用它时,只需:

    <Button Style="{StaticResource MyCustomButtonStyle}"
            Content="&#xe000;" // Where "000" is replaced by the number of the icon you wish to use.
            AutomationProperties.Name="Text Label"/>
    

    这应该是可扩展的,并且可以轻松地重现到您需要的任何位置 . 复制 AppBarButton 样式时,我建议删除人工尺寸限制(特别是主要内容的宽度 Grid ) . 我建议给文本标签一个固定的大小,或者让它从指定的父级 Width 中拉出它的大小,这样它就能正确地显示出来 .

    希望这有助于编码!

  • 2

    您是否希望创建类似于AppBar的东西?看看AppBarButton及其支持的样式/类型 . 在Windows 8.1中,我们专门针对SymbolIcon添加了一些内容 . 由于您基本上需要为您的样式添加两个“内容”,因此您必须重新使用一个属性(除非您创建一个自定义控件,此方案不需要) . 对可见标签使用AutiomationProperties.Name是一个好主意,因为默认情况下它对这些用户也有帮助 .

    调查AppBarButton的样式以帮助您入门 .

相关问题