0

除了背景之外,有没有办法自定义 Callisto 自定义对话框的样式?我想更改自定义对话框的标题属性的字体大小和颜色。有什么建议不会弄乱基本风格吗?

参考:https ://github.com/timheuer/callisto/wiki/CustomDialog

4

1 回答 1

0

CustomDialog 的模板将其标题的 Foreground 计算为与 Background 形成对比的颜色,并将 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 的 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>
于 2015-04-15T06:46:37.217 回答