0

我正在像过去一样使用 Catel & Orchestra Framework 开发 WPF 应用程序。

在这个特定的应用程序中,如果我没有在 UserControl 的资源中指定样式,它似乎不适用

所以我必须在每个视图中做

  <Grid.Resources>


            <Style TargetType="TextBlock">
                <Setter Property="VerticalAlignment"
                        Value="Center" />
            </Style>
  <Grid.Resources>

这是我的 Application.Xaml 的资源

    <Application.Resources>
    <telerik:EnumToBooleanConverter x:Key="EnumToBooleanConverter"></telerik:EnumToBooleanConverter>
    <telerik:InvertedBooleanConverter x:Key="InvertedBooleanConverter"></telerik:InvertedBooleanConverter>
    <telerik:BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter"></telerik:BooleanToVisibilityConverter>
    <system:Double x:Key="Width">250</system:Double>
    <GridLength  x:Key="DefaultRowWidth">250</GridLength>
    <GridLength  x:Key="DefaultRowHeigth">40</GridLength>
    <Style TargetType="TextBlock">
        <Setter Property="VerticalAlignment"
                Value="Center" />
    </Style>

    <Style TargetType="CheckBox">
        <Setter Property="VerticalAlignment"
                Value="Center" />
    </Style>

    <Style TargetType="TextBox">
        <Setter Property="Height" Value="30"></Setter>
    </Style>
    <Style TargetType="{x:Type telerik:RadComboBox}">
        <Setter Property="Height" Value="30"></Setter>
    </Style>

    <Style TargetType="{x:Type telerik:RadDatePicker}">
        <Setter Property="Width" Value="120"></Setter>
        <Setter Property="Height" Value="30"></Setter>
    </Style>
</Application.Resources>

枚举、静态值等被正确识别和使用,在 TextBlock/CheckBoxes 等的情况下,没有。我还使用FluentRibbon和 Telerik 作为 UI 组件(就像我过去所做的那样)。

有什么建议吗?

这是没有用户控件资源的布局

在此处输入图像描述

和它

在此处输入图像描述

4

1 回答 1

0

您可能正在使用StyleHelper它为您创建所有样式(基于命名约定,Default[ControlName]Style(例如DefaultTextBlockStyle)。Orchestra 确实提供了所有这些开箱即用的样式,您需要在正确的层上覆盖它们以确保它们获胜。

你有几个选择:

  1. 指定您自己的版本,DefaultTextBlockStyle它应该可以工作。
  2. 禁用 StyleHelper / 样式转发器
  3. 覆盖较低级别的样式(例如用户控制级别)
于 2019-08-29T08:09:39.810 回答