0

Есть ли способ настроить стиль пользовательского диалога Callisto, отличного от фона? Я хочу изменить размер шрифта и цвет свойства title в пользовательском диалоге. Любые предложения, не входящие в базовый стиль?Callisto Custom Dialog Custom Styling для Windows App

Ссылка: https://github.com/timheuer/callisto/wiki/CustomDialog

ответ

0

шаблон The CustomDialog в вычислил его Foreground титул на цвет, который контрастирует с фоном и устанавливает FontSize до 26.6667:

<StackPanel Margin="13,19,13,25" HorizontalAlignment="Center" Width="{TemplateBinding Width}" MaxWidth="680"> 
    <local:DynamicTextBlock Foreground="{Binding RelativeSource={RelativeSource Mode=TemplatedParent}, Path=Background, Converter={StaticResource ColorContrast}}" x:Name="PART_Title" Text="{TemplateBinding Title}" FontFamily="Segoe UI" FontSize="26.6667" FontWeight="Light" Margin="0,0,0,8" /> 
    <ContentPresenter Margin="0" x:Name="PART_Content" Foreground="{Binding RelativeSource={RelativeSource Mode=TemplatedParent}, Path=Background, Converter={StaticResource ColorContrast}}" /> 
</StackPanel> 

Если вы хотите изменить эти вы будете нуждаться перепрограммировать диалог. Вы можете скопировать шаблон с Callisto's generic.xaml и затем заменить свойства Foreground и FontSize. Вы можете использовать TemplateBinding, так что вы можете установить их на CustomDialog, когда вы называете его:

<StackPanel Margin="9,5" HorizontalAlignment="Center" Width="{TemplateBinding Width}" MaxWidth="680"> 
    <callisto:DynamicTextBlock Foreground="{TemplateBinding Foreground}" x:Name="PART_Title" Text="{TemplateBinding Title}" FontFamily="Segoe UI" FontSize="{TemplateBinding FontSize}" FontWeight="Light" Margin="0,0,0,8" /> 
    <ContentPresenter Margin="0" x:Name="PART_Content" Foreground="{TemplateBinding Foreground}" /> 
</StackPanel> 

Затем установите их на свои собственные ресурсы:

<callisto:CustomDialog Background="{ThemeResource MyCustomDialogBackground}" Foreground="{ThemeResource MyCustomDialogForeground}" Title="Lorem ipsum" Template="{StaticResource CustomDialogControlTemplate1}"></callisto:CustomDialog> 
+0

Спасибо! Это похоже на направление, в котором я хочу возглавить. У вас возникли проблемы при копировании стиля с любой ссылкой на «ThemeResource» в шаблоне? Я не уверен, как заставить их работать. Вам нужно было скопировать все настройки «ThemeResource» в ваш стиль? Пример: <Свойство Setter = "BorderThickness" Value = "{ThemeResource CustomDialogBorderThemeThickness}" /> – floydbear

+0

Это действительно сработало. Мне просто пришлось скопировать некоторые из ThemeResources и установить правильную директиву для одного конвертера. Отлично! Большое спасибо за Вашу помощь. – floydbear