問題タブ [attachedbehaviors]
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 - WPF アタッチされた動作の定義にこれらのメソッドが必要なのはなぜですか?
これらの 2 つのメソッドはどこにも呼び出されていないようです。添付された動作を使用するために必要ですか、それとも単にプロパティを取得するための便利なものですか?
http://www.codeproject.com/Articles/28959/Introduction-to-Attached-Behaviors-in-WPFの例の完全なコード
c# - パラメータを TargetedTriggerAction に渡す方法
DataGrid にこの goto 機能があります。この機能は、ViewModel やコード ビハインドから除外したいので、次の添付ファイルは完璧かもしれませんが...
ユーザーが行 (アイテム) 番号を入力し、ユーザーが GotoButton をクリックすると、アイテムが表示されます。
これが TargetedTriggerAction クラスです。
どうにかして GotoTextbox からテキストを渡したいのですが、できるバインディングはありますか? どうすればこれを達成できますか?
wpf - プログラムで HeaderTemplate のバインディングを指定する
のビューの仮想化でさまざまな問題が発生していTabControl
ます。幸いなことに、この CodeProject の記事で、すべての問題を解決できると思われるものを見つけました。
ただし、このソリューションによって 1 つの問題が発生します。それは、HeaderTemplate
. タブ ヘッダーには、コンテンツ コントロールと同じコンテンツがあります。
私のビューは、次のような TabControl を使用します。
これbehaviors:TabItemGeneratorBehavior
は CodeProject の記事からのものです。内部にTabItemGeneratorBehavior
は、次を生成するメソッドがありますTabItems
。
私の問題は、のバインディングを設定する行にあると思いますHeaderProperty
。HeaderTemplate
上記の XAML で定義されたものを使用するようにバインディングを設定するにはどうすればよいですか?
c# - スタイルを介して動作を追加する
WPF でスタイルを介して動作を追加するにはどうすればよいですか?
具体的には、ItemContainerStyle を介して TreeViewItem に動作を追加する必要があります。
しかし、実行時に、私はこれを取得します:
System.Windows.Markup.XamlParseException: '設定プロパティ 'System.Windows.Setter.Property' が例外をスローしました。行番号「422」および行位置「34」。---> System.ArgumentNullException: 値を null にすることはできません。パラメーター名: プロパティ at System.Windows.Setter.CheckValidProperty(DependencyProperty プロパティ) at......
デザイナーにもエラーがあります。
プロパティ「Behaviors」は DependencyProperty ではありません。マークアップで使用するには、アタッチされていないプロパティを、アクセス可能なインスタンス プロパティ "Behaviors" を使用してターゲット タイプで公開する必要があります。添付プロパティの場合、宣言する型は、静的な "GetBehaviors" および "SetBehaviors" メソッドを提供する必要があります。
c# - ビットマップ エフェクト ストーリーボードを ContentControl にプログラムで追加および削除する方法
私は未完成の次の動作をしています。TransitionElement は基本的に ContentControl であることに注意してください。
BlurBitmapEffect を使用してコントロールのぼかしとぼかしを解除する 2 つのストーリーボードを作成したいと思います。
ContentControl Enabled プロパティが false に設定されている場合、ストーリーボードを追加してぼかしを開始したいと思います。
Enabled が true に設定されている場合、コントロールのぼかしを解除するストーリーボードを実行し、終了したら両方のストーリーボードを削除して、ビットマップ効果を効果的に削除したいと考えています。
アプリケーションをロックおよびロック解除するときにこれを行っています。
スタイルを使用して XAML を使用すると、グラフィック パフォーマンスに大きな影響を与えることがわかりました。すると、以下のメモが見つかりました。したがって、これらのストーリーボードを適用してから、それらをまとめて削除しない理由を理解しています。
WPF ビットマップ効果の使用には注意してください。これを書いている時点では、WPF ビットマップ効果はソフトウェア モードでレンダリングされます。効果を適用するオブジェクトもソフトウェアでレンダリングされます。ビットマップ効果は、大きなビジュアルには適用しないでください。また、エフェクトのプロパティをアニメーション化すると、パフォーマンスが低下する可能性があります。現時点では、ビットマップ効果は控えめに使用し、ボタンやテキスト ボックスなどの比較的小さなビジュアル UI オブジェクトで使用することをお勧めします。効果をアニメーション化するのは自由ですが、繰り返しますが、比較的小さくて微妙なアニメーションをお勧めします。
BitmapEffect が減価償却され、Effect が使用されることに気付きました。
c# - UserControl でインタラクション動作を機能させる方法
動作が添付された次の UserControl があります。現時点では、動作を実行するために DataGrid 項目の 1 つを選択する必要があります。
ここで推測するだけですが、これらのコンテナーはフォーカス可能ではないか、キーボード イベントを登録することになっていないため、理解できるので、次の使用可能な子に移動しますか???
この機能をウィンドウに配置することもできますが、この UserControl は別の UserControl と交換される可能性があり、私はそれが横たわっていないことを好みます。これは、ウィンドウ上の唯一のものは DataGrid であり、動作を開始するために必ずしも DataGrid アイテムを選択したくないという私のアプリのユニークなケースです。
私の質問は次のとおりです。次の動作を機能させることは可能ですか? UserControl、Grid、またはこれを許可する他のコントロールのいずれか。
動作は次のとおりです。
wpf - 副作用なしで動作をデタッチ/アンロードする安全な方法はありますか?
WPF と WinRT では、動作が Detach メソッドを確実に呼び出さないことはよく知られています。メモリ リークを回避する唯一の方法は、AssociatedObject の Unloaded イベントをサブスクライブし、すべてのイベントをアンフックすることです ( example )。
これまでのところ、動作します。
しかし、(私がリンクしたブログ エントリにコメントした他の誰かがそうであったように) この方法では、アンロードされたビヘイビアが再びアタッチされることは決してないことに気付きました。たとえば、MenuFlyout を取り上げます。MenuFlyoutItem にアタッチされた動作がある場合、MenuFlyoutItem が閉じられるとアンロードされます。メニューを再度開くと、再接続されません。
これは、他の UserControls でも発生します。すべてのコントロールが新たに再作成されますが、WinRT アプリであるページから別のページに移動して再び戻ると、動作が「失われます」。ナビゲートすることで多くのコントロールが再作成される WinRT アプリでそれらを使用する方法がわかりません。
これに知られている解決策はありますか?