Шаблон управления и разделение данных, связанных с темой, через словари ресурсов - PullRequest
0 голосов
/ 04 февраля 2012

У меня есть несколько словарей ресурсов с данными, относящимися к теме, где я объявил стили для определенного элемента следующим образом:

<Style TargetType="sdk:DataForm">
    <Setter Property="Background" Value="{StaticResource Bckgrnd}"/>
</Style>

А также у меня есть Generic.xaml, где я хочу установить шаблон для этого целевого типа, но я столкнулся с ситуацией, когда в одном шаблоне мне приходится использовать несколько цветов, но у целевого типа есть только одно свойство для цвета. Примерно так:

<Style TargetType="sdk:DataForm">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="sdk:DataForm">
                <Grid ctl:DataField.IsFieldGroup="True">
                    ....
                 <StackPanel Background="{TemplateBinding Background}" ...>
                    ...
                    ...
                 <!-- and I need another background from themes here -->
                 <StackPanel Background="{???}" ...>
                    ...
                </Grid>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

И вопрос такой: как я могу использовать разные цвета в этом случае без расширения типа цели? Будет здорово, если вы найдете чистое решение xaml.

Спасибо

1 Ответ

0 голосов
/ 04 февраля 2012

Я не знаю чистого решения XAML. Я думаю, что я создал бы подкласс DataForm и добавил бы к нему свойства зависимости типа Brush. Затем используйте этот класс в XAML вместо DataForm и используйте TemplateBindings, которые ссылаются на новые свойства.

Или, если вы не хотите создавать подкласс DataForm, возможно, вы можете создать вложенные свойства типа Brush.

...