由DynamicResource绑定时不应用样式

时间:2014-07-15 16:41:52

标签: wpf xaml

我有点困惑。我正在创建一个示例并为我的文本框设置了默认模板。我试图存档的是将样式应用于边框并在其中指定BorderBrush。应用此样式时

 <Style TargetType="{x:Type newLibrary:MyTextBox}">
<Setter Property="SnapsToDevicePixels"
        Value="True" />

<Setter Property="KeyboardNavigation.TabNavigation"
        Value="None" />
<Setter Property="FocusVisualStyle"
        Value="{x:Null}" />
<Setter Property="MinWidth"
        Value="120" />
<Setter Property="MinHeight"
        Value="20" />
<Setter Property="AllowDrop"
        Value="true" />
<Setter Property="Template">
  <Setter.Value>
    <ControlTemplate TargetType="{x:Type newLibrary:MyTextBox}">
      <Border Name="Border"
              CornerRadius="2"
              Padding="2"
              BorderThickness="1">
        <Border.Background>
          <SolidColorBrush Color="{DynamicResource ControlLightColor}" />
        </Border.Background>

        <VisualStateManager.VisualStateGroups>
          <VisualStateGroup x:Name="CommonStates">
            <VisualState x:Name="Normal" />
            <VisualState x:Name="Disabled">
              <Storyboard>
                <ColorAnimationUsingKeyFrames Storyboard.TargetName="Border"
                                              Storyboard.TargetProperty="(Panel.Background).
                (SolidColorBrush.Color)">
                  <EasingColorKeyFrame KeyTime="0"
                                       Value="{StaticResource DisabledControlLightColor}" />
                </ColorAnimationUsingKeyFrames>
              </Storyboard>
            </VisualState>
            <VisualState x:Name="ReadOnly">
              <Storyboard>
                <ColorAnimationUsingKeyFrames Storyboard.TargetName="Border"
                                              Storyboard.TargetProperty="(Panel.Background).
                (SolidColorBrush.Color)">
                  <EasingColorKeyFrame KeyTime="0"
                                       Value="{StaticResource DisabledControlDarkColor}" />
                </ColorAnimationUsingKeyFrames>
              </Storyboard>
            </VisualState>
            <VisualState x:Name="MouseOver" />
          </VisualStateGroup>
        </VisualStateManager.VisualStateGroups>
        <ScrollViewer Margin="0"
                      x:Name="PART_ContentHost" />

      <Border.Style>
        <Style TargetType="{x:Type Border}" >
          <Setter Property="Border.BorderBrush" >
            <Setter.Value>
              <MultiBinding Converter="{StaticResource myconv}">
                <Binding/>
                <Binding/>
              </MultiBinding>
            </Setter.Value>
          </Setter>
        </Style>
      </Border.Style>
      </Border>
    </ControlTemplate>
  </Setter.Value>
</Setter>

不幸的是,当我试图提取这种风格(以后再覆盖它)它不起作用 - 边框不会变红。

  <Style TargetType="{x:Type newLibrary:MyTextBox}">
<Setter Property="SnapsToDevicePixels"
        Value="True" />

<Setter Property="KeyboardNavigation.TabNavigation"
        Value="None" />
<Setter Property="FocusVisualStyle"
        Value="{x:Null}" />
<Setter Property="MinWidth"
        Value="120" />
<Setter Property="MinHeight"
        Value="20" />
<Setter Property="AllowDrop"
        Value="true" />
<Setter Property="Template">
  <Setter.Value>
    <ControlTemplate TargetType="{x:Type newLibrary:MyTextBox}">
      <Border Name="Border"
              CornerRadius="2"
              Padding="2"
              BorderThickness="1"
              Style="{DynamicResource VisualStyle}">
        <Border.Background>
          <SolidColorBrush Color="{DynamicResource ControlLightColor}" />
        </Border.Background>

        <VisualStateManager.VisualStateGroups>
          <VisualStateGroup x:Name="CommonStates">
            <VisualState x:Name="Normal" />
            <VisualState x:Name="Disabled">
              <Storyboard>
                <ColorAnimationUsingKeyFrames Storyboard.TargetName="Border"
                                              Storyboard.TargetProperty="(Panel.Background).
                (SolidColorBrush.Color)">
                  <EasingColorKeyFrame KeyTime="0"
                                       Value="{StaticResource DisabledControlLightColor}" />
                </ColorAnimationUsingKeyFrames>
              </Storyboard>
            </VisualState>
            <VisualState x:Name="ReadOnly">
              <Storyboard>
                <ColorAnimationUsingKeyFrames Storyboard.TargetName="Border"
                                              Storyboard.TargetProperty="(Panel.Background).
                (SolidColorBrush.Color)">
                  <EasingColorKeyFrame KeyTime="0"
                                       Value="{StaticResource DisabledControlDarkColor}" />
                </ColorAnimationUsingKeyFrames>
              </Storyboard>
            </VisualState>
            <VisualState x:Name="MouseOver" />
          </VisualStateGroup>
        </VisualStateManager.VisualStateGroups>
        <ScrollViewer Margin="0"
                      x:Name="PART_ContentHost" />


      </Border>
    </ControlTemplate>
  </Setter.Value>
</Setter>

                                                                  

0 个答案:

没有答案
相关问题