問題タブ [visualstatemanager]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
xaml - 「無効」の視覚的状態に応じて、アニメーションのControl.Opacityを維持しますか?
カスタムボタンがあります。
「無効」状態になると、Opacity
プロパティが65%程度にスワップし、約1秒の時間枠で、「無効」状態になると、不透明度が100%に戻るようにします。 (アニメーション)。
これはどのように行われますか?
これはどのように行われますか?
wpf - VisualStateManagerを使用してパネルをアニメーション化するWPF
私がやろうとしていることが Visual States を使用して可能であることを願っています...
私がやりたいのは、stackPanel を「In」と「Out」の 2 つの状態の間で切り替えるボタンを用意することです。次に、ボタンのクリック イベントで VisualStateManager.GoToState を呼び出して、2 つの状態を切り替えます。
私が遭遇した問題は、状態を StackPanel にアタッチする方法がわからないことです。Expression Blend を使用できません。だから私は立ち往生しています... VisualStateManagerを使用してこのパネルをアニメーション化する方法はありますか? (ストーリーボードを使用してインとアウトのアニメーションを作成できることはわかっていますが、可能であればステートを使用したいと思います)
これが可能になることを本当に願っています。それ以外の場合、ボタンにギミックなロールオーバー効果を実行する以外に、VisualStateManager は何に適していますか?
助けてくれてありがとう!
silverlight - 特定のトランジションを爆発させずに視覚状態間をアニメーション化する
Silverlight で実装しようとしている非常に単純なシナリオのように見えるものがありますが、Silverlight/Blend 4 の信じられないほど強力なトランジション機能にもかかわらず、その方法がわかりません。
私はこれに要約するレイアウトを持っています:
最初は、4 つのページ グリッドがすべて非表示になっており、サイズが 0 になっていますが、対応するボタンをクリックすると、ページが拡大するアニメーションで表示されます。別のボタンをクリックすると、縮小アニメーションで前のページが消え、拡大アニメーションで別のページが表示されます。このように、ボタンを使用して 4 つのページすべてに移動できます。
私が読んだことから、これを行う「正しい」方法は、ユーザーコントロールで視覚的な状態を使用することです。そのため、Page1 から Page4 までの 4 つの状態を作成し、各状態に対して適切なページ グリッドを表示するように設定しました。次に、ボタンにコマンドを配置して、ユーザー コントロールの表示状態を変更します。これは問題なく機能し、ページを切り替えることができましたが、状態間のアニメーションを定義しようとしたときに問題が発生しました。
最初は、状態ごとに「To *」と「From *」のアニメーションを定義できると思っていました。したがって、状態 Page1 でボタンをクリックして状態 Page2 に移動すると、Page1 を非表示にする「From *」アニメーションが再生され、次に Page2 を表示する「To *」アニメーションが再生されます。しかし、これはうまくいきません。各状態に対して 'To *' および 'From *' アニメーションを定義した場合でも、Silverlight は 'To *' アニメーションのみを再生し、'From *' アニメーションを完全に無視します!
さらに悪いことに、この動作は、まったく意味がありませんが、Silverlight が動作するはずの方法のようです! つまり、各ページを縮小し、その場所で別のページを拡大したい場合、各状態から他の各状態への個別の遷移を定義する必要があります! 現在の 4 ページの場合、これは 12 の個別のトランジションを意味しますが、ページ数を増やしたい場合、この数は急増します。10 ページの場合、9*9 = 81 回のトランジションが必要です! 現在のページを縮小し、新しいページを拡大するためのすべて。
このような単純なシナリオと思われるものを処理するためのより良い方法がないとは信じられませんが、方法を説明しているようには見えません。ストーリーボードを変更する分離コードを使用して一緒にハックすることもできますが、Blend でページ グリッドを表示および編集できるようにしたいと考えています。
明らかな何かが欠けていると教えてください。
c# - 新しいビジュアルステートをカスタムコントロールテンプレートにコードで動的に追加するにはどうすればよいですか?
カスタムコントロールテンプレートのプログラムにコードで新しいVisualState
ものを追加することは可能ですか?
たとえば、このXAMLを設計時に手動でCustomControlテンプレートに追加できます。VisualStateManager
しかし、どうすればVisualState
ランタイムに新しいものを追加できますか?
silverlight - 画像付きSilverlightToggleButton
プラス記号とマイナス記号を切り替えるSilverlightToggleボタンスタイルを作成しようとしています。残念ながら、常にマイナス記号が表示されています。このスタイルの何が問題なのか誰か教えてもらえますか?
.net - アクティブタブが変更されたときにUserControlコンストラクターが実行されないようにする
2つのタブがあるタブコントロールがあり、各タブにはUserControlが含まれ、UserControlにはトランジションとともに定義されたビジュアルステートがあります。
私が回避したい問題は、アクティブなタブを変更するたびに、コントロールがすでに状態になっているはずであり、変更する必要がない場合でも、ビジュアル状態遷移ストーリーボードが実行されることです。
これを追跡して、タブを変更すると、新しく表示されたタブ内のすべての子UserControlのコンストラクターが実行されます。これを回避する方法はありますか?
silverlight - Silverlight でのベスト プラクティス トリガーの代替手段
MSDN は、EventTriggerおよび実際にはすべてのカスタム トリガー アクションの使用を推奨していませんが、代わりにStoryBoardおよびVisualStateManagerを提供しています。
Q1. トリガーが非常に便利に見えるのに、なぜ推奨されないのでしょうか?
MSDN の正当な理由は次のようです。
要素での EventTrigger および object.Triggers プロパティ要素の使用は、Silverlight でサポートされていますが、この手法の使用は現在のアプリケーションではお勧めできません。EventTrigger は、Loaded イベントのトリガー アクションのみをサポートできます ( EventTrigger.RoutedEvent プロパティでイベントに名前を付けます) 。
では、VSM の VisualState に名前を付けても問題ありませんが、イベントに名前を付けることは問題ないでしょうか? どちらも変更される可能性のある文字列値ですが、一方の命名が他方より悪いのはなぜでしょうか?
Q2. 値がデータ コンテキストのプロパティ値に依存するオブジェクトのプロパティをアニメーション化するためのベスト プラクティス アプローチは何ですか?
確かに、VSM と StoryBoard はアニメーションには最適ですが、オブジェクトのデータ コンテキストと直接対話することはありませんね。
議論のために次のシナリオを検討してください。
キャンバス パスの境界線は、キャンバスのデータ コンテキストの IsSelected プロパティの値に基づいて色と太さを変更する必要があります。キャンバス パスの囲まれた領域を左クリックすると、IsSelected プロパティが切り替わります。これにより、パスのアニメーションも変更され、最終的には色と太さが変更されます。
アプローチ1
おそらく、対話イベント (つまり、MouseLeftButtonUp) にフックして、コード ビハインドで IsSelected プロパティ値を更新し、StoryBoard を開始するか、VisualState を変更してキャンバス パスをアニメーション化することができます。これはアニメーションの観点からは問題ないかもしれませんが、データ コンテキストを IIsSelectable インターフェイスにキャストしない限り、ビューをそのビュー モデル/データ コンテキストに強く結び付けます。
アプローチ 2
おそらく、IISelectable (上記) プロパティを切り替えて、StoryBoard を開始するか、VisualState を変更する動作を作成できます。Canvas は Control であるため、StoryBoard だけでなく VSM を使用することをお勧めします (そうしないと、StoryBoard への参照を Behavior に渡さなければならないのではないでしょうか?)。
アプローチ 3
キャンバス パスの初期アニメーションが IsSelected プロパティ値によって決定されるように、デュアル コンバーターで双方向バインディングを使用することもできますが、ユーザーの操作によってアニメーション / VisualState が変更され、IsSelected プロパティ値が更新されます。この場合、Canvas Path の境界線の色/太さのプロパティを変換しますか、または VisualState を (IsSelected のブール値との間で) 適切に変換する方法はありますか?
これらは、頭の中で思いついたアイデアのほんの一部です。より良いプラクティスとなる他の提案はありますか?
silverlight-4.0 - VisualStateManager.GotoStateがChildWindow内で機能しない
Silverlight 4アプリケーションに、2つの視覚的な状態が定義されたChildWindowがあります。
Blendでプレビューすると、ビジュアルステートは希望どおりに動作しますが、ViewStateManager.GotoStateを呼び出すと、falseが返され、ビジュアルステートは遷移しません。
これが私のXAMLです。長さのお詫び...
VisualStateHelper.VisualStateNameは、値が変更されたときにVisualStateManagerを呼び出す添付プロパティです。プロパティの実装は他の場所で機能するため、おそらく問題にはなりません。
c# - Codebehind から VisualStates を定義する
CodeBehind で VisualStatesを定義する(切り替えない)ことは可能ですか?
でいくつかの長方形を描画する Adorner を作成していOnRender
ます。私がやりたいのは、これらの Rectangles の不透明度をプロパティIsMouseOver
(0.3 から 0.8 など) で変更することです。
ビジュアル ツリーを持つ任意のコントロールでは、いくつかの VisualStates を追加し、DataStateBehavior でそれらを切り替えます。Adorner を使用してこれを行うにはどうすればよいですか?
silverlight - WP7 + Silverlight では、ListBox アイテムの表示状態を変更するにはどうすればよいですか?
リストボックス項目の表示状態を変更する必要があります。これは、視覚的な状態を持つ DataTemplate です。環境としてWP7を使用しています。
ここに私のリストボックスがあります:
この ListBox の ItemsSource にバインドする ObservableCollection は次のとおりです。
プロパティ 'CurrentState' の変更に基づいて、ListBox の表示状態を 'Edit' および 'Normal' に変更するにはどうすればよいですか?
ありがとう