読者です 読者をやめる 読者になる 読者になる

Expression Blend 2.5 June PreviewでStoryboardのIsHitTestVisible設定の件

画面項目の遷移にアニメーションを使ったりしたときに、消したほうの項目のIsHitTestVisibleを切り替えたい場合ってありますよね。IsHitTestVisibleを設定してあげたり設定をちゃんとしてあげないと、画面上みえなくなっていてもマウスイベントなどを受け付けてしまって、ハマってしまうことはよくあります。

Expression BlenddのStoryboardの作成からIsHitTestVisibleが設定できればいいのですが、2.5 June Previewでは対応していないようです。画面上でプロパティを変更すると、Storyboardではなくそもそもの要素に設定されてしまいます。

ここはおとなしく手書きで対応しましょう。

<ObjectAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="foo"
  Storyboard.TargetProperty="IsHitTestVisible">
  <DiscreteObjectKeyFrame KeyTime="00:00:00">
    <DiscreteObjectKeyFrame.Value>
      <sys:Boolean>False</sys:Boolean>
    </DiscreteObjectKeyFrame.Value>
  </DiscreteObjectKeyFrame>
</ObjectAnimationUsingKeyFrames>

こんな感じで設定可能です。


ポイントは「false」を指定しているところのBooleanタグのネームスペースの「sys」です。ネームスペースの定義でmscorlibのSystem名前空間を設定してあげてください。

xmlns:sys="clr-namespace:System;assembly=mscorlib"


結構よく使うので、次のバージョンとかで対応してくれると非常にうれしいのですが。