1

リソースとして色オブジェクトを含む UserControl があります。

  <UserControl.Resources>
    <ResourceDictionary>
      <ResourceDictionary.MergedDictionaries>
        ...
      </ResourceDictionary.MergedDictionaries>
      <Color x:Key="BackgroundColor">Transparent</Color>
    </ResourceDictionary>
  </UserControl.Resources>

この UserControl にはルート要素として Grid があり、上記のカラー リソースを参照したいカスタム スタイルがあります。

    <Grid.Style>
      <Style TargetType="Grid">
        <Style.Triggers>
          <Trigger Property="FrameworkElement.IsMouseOver" Value="True">
            <Trigger.EnterActions>
              <BeginStoryboard>
                <Storyboard>
                  <ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(Background).(SolidColorBrush.Color)">
                    <SplineColorKeyFrame KeyTime="0:0:0.5" KeySpline="0.15,0.8 0.3,1" Value="LightBlue" />
                  </ColorAnimationUsingKeyFrames>
                </Storyboard>
              </BeginStoryboard>
            </Trigger.EnterActions>
            <Trigger.ExitActions>
              <BeginStoryboard>
                <Storyboard>

                  <!-- Here is the problem -->
                  <ColorAnimation To="{DynamicResource BackgroundColor}" Duration="0:0:1" Storyboard.TargetProperty="(Background).(SolidColorBrush.Color)" />

                </Storyboard>
              </BeginStoryboard>
            </Trigger.ExitActions>
          </Trigger>
        </Style.Triggers>
      </Style>
    </Grid.Style>

アプリを実行するたびに、フレームワークがスタイルを設定しようとすると、XAML 解析例外が発生します。BackgroundColorを StaticResource として参照すると問題なく動作しますが、特定の条件でコード ビハインドでリソースを変更しているため、動的に参照する必要があります。

このコンテキストでリソースを動的リソースとして使用するにはどうすればよいですか?

4

0 に答える 0