1

コントロール テンプレートのボタンの VisualState を定義しました。

  <ControlTemplate x:Key="ButtonTemplate" TargetType="Button">
      ...
      <VisualStateManager.VisualStateGroups>
        <VisualStateGroup x:Name="CommonStates">
          ...
          <VisualState x:Name="PointerOver">
            <Storyboard>
              <DoubleAnimation Storyboard.TargetName="c1" Storyboard.TargetProperty="Opacity" To="0.7"/>
            </Storyboard>
          </VisualState>
          ...
        </VisualStateGroup>
      </VisualStateManager.VisualStateGroups>
      ...
  </ControlTemplate>

しかし、この効果 (マウスオーバー時に不透明度を変更する) は、ビューモデルの条件に基づいて有効/無効にする必要があるため、XAML でそれを行うにはどうすればよいですか?

DoubleAnimation の To 値のバインドを作成しようとしましたが、Storyboard がフリーズしているため機能しません。テンプレートセレクターのようなものも考えていますが、VisualState Manager にはそのようなものはありません。

4

1 に答える 1

1

最近誰かと話し合っていたので、WinRT XAML Toolkitに問題の一般的な解決策を追加する可能性があります。これは、WPFのDataTriggersと同様に機能しますが、今のところはDependencyProperty、コントロールにを追加し、プロパティをビューにバインドします。モデルと値の変更時-視覚的な状態を更新します。

于 2013-02-12T19:10:50.763 に答える