Можете ли вы определить строку в листе темы для использования в качестве значения x: key? - PullRequest
0 голосов
/ 16 марта 2012

Я играю с темами и вижу, что вы можете определить целый набор вещей, полученных из объектов или связанных с типами классов ... SolidBrushColor, Button, TextBox и т. Д.

Затем вы можете применить x: Key = "что-то", а затем связать его со стилем, таким как

<Setter Property="Foreground" Value="{StaticResource SomeSolidBrushColor}" />

Итак, мой вопрос такой. Можете ли вы сделать то же самое, но со «строкой», которую хотите использовать постоянно ... например, имя шрифта, которое будет явно использоваться на всех элементах управления ... Button, Label, TextBox, CheckBox и т. Д. строка со значением "Arial", "Tahoma", "Wingdings", затем в каждом из стилей для фактических элементов управления вы можете сделать что-то вроде

<Setter Property="FontFamily" Value="{StaticResource MyCommonFontName}" />

Аналогичным образом значение может представлять строку, которая будет использоваться для таких вещей, как общие поля, границы и т. Д.

1 Ответ

1 голос
/ 16 марта 2012

Вы не можете использовать строковый ресурс для шрифта, потому что это строка, а не объект FontFamily:

<Window x:Class="WpfApplication4.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="clr-namespace:WpfApplication4"
    xmlns:media="clr-namespace:System.Windows.Media;assembly=PresentationCore"
    xmlns:sys="clr-namespace:System;assembly=mscorlib"
    Title="MainWindow" Height="350" Width="525">
<Window.Resources>
    <media:FontFamily x:Key="Font">Stencil</media:FontFamily>
    <Style TargetType="{x:Type Button}">
        <Setter Property="FontFamily" Value="{StaticResource Font}"/>
    </Style>
</Window.Resources>
<StackPanel>
    <Button>hello</Button>
</StackPanel>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...