問題タブ [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.
wpf - Silverlight & WPF: ControlTemplate の VisualStateManager が機能しない
では、みなさんこんにちは。
独自のコントロールを作成するための 2 つのテスト プログラムを作成しました。Silverlight に 1 つ、WPF に 1 つ。一種の RangeSlider を作成しました。このスライダーにはもちろん、水平方向と垂直方向の 2 つの方向があります。最初に、RangeSlider を作成するために 2 つの異なる手法を使用しました。WPF ではトリガーを使用し、Silverlight では (トリガーがないことを知っています)、CodeBehind.This の水平および垂直テンプレートの可視性を変更しました。
現在: Silverlight と WPF の両方に 1 つの手法を使用しようとしています。したがって、VisualStateManager を使用します。
2 つのスライダー (1 つは左の値用、もう 1 つは右の値用) を定義するテンプレートがあります。重要な値を単純化すると、次のようになります。
さらに、水平方向と垂直方向の外観を切り替える VSM があります。
これはまだ実行されます。
コード シーケンスでわかるように、Slider のビジュアルは Template によって定義されます。
実は VerticalSliderTemplate もあります。しかし、両方の ControlTemplate を 1 つの Template に結合し、VSM を使用したいと考えています。ここで私の問題に行きます:
「内側」の ControlTemplate で VSM を実行できません。これは、実行中の VSM-Part とほぼ同じコードで、TargetName が変更されているだけです。GoToState で実行されているものをデバッグする方法はわかりませんが、テンプレート内の VSM が見つからず、そこから実行されることはないと思います。
細部が少し欠けているだけだと想像できますが、「木を見て木が見えない」のです。テンプレートや VSM について私が知らない重要なことがあり、軌道から外れているのかもしれません。または、外部から「内部」VSM をトリガーする必要がありますか、または「外部 VSM」から要素にアクセスする可能性がありますか? または、「内部」テンプレートの VSM にアクセスできませんか?
私の問題を十分に説明できることを願っています。誰かが解決策を知っているか、私が探すことができるキーワードを知っています。Google で VSM、ControlTemplate、Storyboard などのキーワードを入力するだけでは何の助けにもなりません。
前もって感謝します。
.net - VisualStateManagerは.NET4.0(wpf)では機能しないようです
境界線などのない画像ボタンのみを表示するために、デフォルトのボタンスタイルをオーバーライドしたいと思います。
これはすべて完全に機能していますが、XAMLスタイルでVisualStateManagerを定義しましたが、マウスでボタンを押すことはできません。実際、それは何もしません。
私は何を間違えますか?
wpf - WPF 4 で入れ子になったコントロールに Visual State を追加する
Visual State (WPF 4) をネストされたコントロールに適用できるかどうかを知りたいです。バリエーションの状態に応じて変更したい要素を含むスタック パネルがあります。
このコードでスタックパネル全体の状態を変更しようとすると
何も起こりません: lblPremioRaggiunto という名前のネストされたテキストブロックは、それに応じて色を変更しません。この方法で視覚的な状態を適用できますか?
ありがとう、ダニーロ。
wpf - WPF VisualStateManager - テンプレート化された子内のプロパティをアニメーション化する方法
「MaxColumns」と呼ばれる依存関係プロパティを持つ、カスタム ItemsPanel を持つ ItemsControl を含む UserControl があります。カスタム パネルの「MaxColumns」プロパティをアニメーション化できる VisualState (UserControl レベル) を定義したいと思います。
基本的に、XAML は次のようになります。
しかし、私は一生、アニメーションの正しい構文を理解できませんか? 上記の構文を使用すると、「'ItemsPanel' プロパティがパス '(0).(1)' の DependencyObject を指していません」というエラーが表示されます。これは、技術的にItemsPanelTemplateを指しているためだと思いますか?
Storyboard.TargetName プロパティで "MyCoolPanel" を直接参照すると、Name スコープに関するエラーが発生します (おそらく "MyCoolPanel" が LayoutRoot の名前スコープにないため)。「TargetName」で名前スコープを修飾する方法があるかどうかわかりません。
誰かがこれに対する解決策を持っていますか? カスタム添付プロパティに頼らずに実行できるように思えますか? つまり、添付プロパティに反対しているわけではありませんが、これを XAML で直接実行できるようにする必要があると思いますか?
c# - Silverlight: VisualStateManager.GetVisualStateGroups はありません。どうすれば取得できますか?
カスタム動作のオーバーライドと、その動作のイベントに追加されたイベント ハンドラーで使用VisualStateManager.GetVisualStateGroups
してみました。どちらの場合も、空のリストが表示されます。OnAttached
AssociatedObject.Loaded
コントロールに定義された視覚状態グループを取得する別の方法、またはアタッチする必要がある別のイベント ハンドラーはありますか?
はい、コントロールにはVisualStateGroups
とがありVisualStates
ます。
c# - XAMLからVisualState遷移を開始します
ユーザーコントロール(またはその他)では、VisualStateMangerをコードで使用して、次のようにトランジションまたはアニメーションを開始できることは誰もが知っています。
ただし、XAMLからこれらのタイプのアニメーションをトリガーすることに関する情報はほとんどまたはまったくないようです。上記のコードと同等の動作を提供できるDataTemplateまたはTriggerを定義できますか?
c# - 制御中の個別のイベント
コントロール内の個々のコンポーネントにイベントを持たせることができるかどうか疑問に思っています。たとえば、独自のコントロールを作成しました。VisualStateManagerを使用すると、コントロール全体で発生するいくつかのイベントを処理できます。コントロールのトグルボタンだけで、マウスオーバーイベントを発生させることができます。現在、マウスが置かれているコントロールの任意の領域でマウスオーバーが発生し、取得しようとしているcoloranimation効果が台無しになります。トグルボタンにマウスが置かれている場合にのみcoloranimationが発生するようにしたいのですが、コントロールには他のコンテンツが表示されます。コンテンツ、私はその作品がイベントを発火させたくありません。
以下でgeneric.xamlファイルで話していることの例。
c# - VisualStateManager が UserControl でアニメーションを開始できない
Windows Phone 7 Silverlight プロジェクトで VisualStateManager を使用して UserControl でアニメーションを開始しようとしていますが、うまくいきません。GoToState は false を返し続けます。
コードは、データ コンテキストの State プロパティが変更されたときに GoToState を実行する VisualState 動作で構成されます。これは、UI のボタンがクリックされたときに発生します。
私は何を間違っていますか?
XAML:
C#:
.net - VisualStateManager:状態Bがアクティブなときに状態Aの実行を停止する方法は?
マウスがボタンの上に置かれるとすぐに、ボタン内の画像のスケールを大きくすることに成功しました。
ToggleButton に同じ概念を使用する場合、状況は少し難しくなります。
トグル ボタンが「チェック済み」状態の場合、マウスオーバー状態でスケーリング アニメーションを起動したくありませんが、カラー アニメーションは引き続き起動する必要があります。
どうすればこれを達成できますか?
どうもありがとう、
wpf - XAML では、VisualStateManager の正しい XML 名前空間は何ですか?
いくつかのトグルボタンのスタイルを変更しようとしています。トグルボタンの視覚的な動作を提供する「コントロールテンプレート」があるため、背景を単に新しい色に設定することはできないようです。したがって、単純な背景色を超えて、さまざまな視覚的動作を提供する ToggleButton の代わりの "ControlTemplate" を XAML で指定する必要があります。
Q1 . これは正しいです?
here から取得した ToggleButton の「デフォルト」コントロールテンプレートから始めて、それを変更することにしました。実際、これは Silverlight のデフォルトの ControlTemplate だと思います。私は Silverlight を使用しておらず、WPF を使用しています。しかし... WPFの対応するドキュメントページには、デフォルトのコントロールテンプレートの仕様が含まれていません。それは私が望むものではない "a" ControlTemplate を提供します。
Q2 . Silverlight のものを使用していることが重要かどうかはわかりません。そうですか?
Silverlight の例では、VisualStateManager に適用された vsm の XML 名前空間プレフィックスがあります。どうやらxml名前空間は
...しかし、別の場所で、この XML 名前空間は「不要になった」と読みました。
これはすべて非常に混乱しています。
Googlespace には、私が以前に触れた「The WPF toolkit」と呼ばれるものへの参照があります。WPF V4 のリリース前に、オートコンプリート テキストボックスに使用していました。私は、WPF ツールキットの一部が .NET v4.0 の WPF に組み込まれたと推測しています。そのため、WPF ツールキットを指定する必要がなくなりました。
Q3 . 誰かがその理解を確認できれば幸いです。
さて、ToggleButton の「デフォルト」の ControlTemplate から始めて、最初のステップは、変更を加える前にコンパイルすることでした。コンパイルされず、失敗します
c:\dev...\ToggleButtonStyle1.xaml(23,14): エラー MC3074: タグ 'VisualStateManager.VisualStateGroups' が XML 名前空間に存在しません ' http://schemas.microsoft.com/winfx/2006/xaml/プレゼンテーション」。行 23 位置 14。
十分にクリア。次に、XAML で VisualStateManager を指定するためのドキュメントを調べました。紛らわしいことに、2 つの xml 名前空間が指定されています。そのうちの 1 つは、私が実際に使用したものです。
Q4うーん、どれを使えばいいの?そのうちの 1 つを使用しましたが、機能しませんでした。ドキュメントは、2 つのXML 名前空間を指定することの意味について完全に不明確です。(彼らの頭をオフに!)
プロジェクト ファイルに PresentationFramework.dll への参照があります。
ここでは Visual Studio を使用していません。テキストエディタを使用しています。どのボタンを押すかではなく、それがどのように機能するかを理解したい。
皆様のご協力に感謝いたします。
余談ですが、これはすべて非常に複雑に思えます。私がしたいのは、オンのときにトグルボタンの色を変更することだけです。それほど複雑ではないはずです。