5

コンテンツコントロールを拡張するカスタムコントロールを作成しました。この中に、正常に機能しているパーツと状態のモデルがあります。

次に、これをxamlのルートとして使用します(Blendのテンプレートフォルダーにコードを配置します)

すべて正常に動作します。新しい「DaveControl」を開いて、必要な機能を取得できます。

ただし、ここにalertOnScreenなどの視覚的な状態を追加して、visualstatemanagerを使用しようとすると、機能しません。

実際、リストされている州はありません。

ただし、SL3GotoVisualStateの動作は正常に機能します。

視覚的な状態をコードで機能させるにはどうすればよいですか?

4

2 に答える 2

7

したがって、解決策は次のとおりです。拡張ビジュアル状態マネージャーを使用してください。

ExtendedVisualStateManager.GoToElementState(this.LayoutRoot as FrameworkElement, "OffScreen", true);

これは、特にフレームワーク要素を必要とするために機能します。 VisualStateManager.GoToStateがWindowで機能しない場合の回避策

于 2010-01-13T11:39:16.350 に答える
1

使用可能な状態のセットをTemplateVisualStateクラスの属性のセットとして追加しましたか?Blendはこれらを使用して、使用可能な状態のリストを構成します。

クラスは通常、次のようになります。-

[TemplateVisualState(Name = "MyGroup1State1", GroupName = "MyGroup1")]
[TemplateVisualState(Name = "MyGroup1State2", GroupName = "MyGroup1")]
[TemplateVisualState(Name = "MyGroup2State1", GroupName = "MyGroup2")]
[TemplateVisualState(Name = "MyGroup2State2", GroupName = "MyGroup2")]
[TemplatePart(...)]
[TemplatePart(...)]
public class MyControl : ContentControl
于 2010-01-13T10:09:33.373 に答える