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

kri*_*son 2 xaml windows-8 winrt-xaml windows-8.1

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

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

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

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

谢谢

Nat*_*ond 5

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

主图标只是一个ContentPresenter绑定到Content使用a TemplateBinding.确保将设置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"/>
Run Code Online (Sandbox Code Playgroud)

这应该是可扩展的,并且可以轻松地重现到您需要的任何位置.复制AppBarButton样式时,我建议删除人工尺寸限制(特别是主要内容的宽度Grid).我不建议要么给文本标签固定的大小,或具有从指定的父拉其大小Width,使之Wrap正确.

希望这有助于编码!