問題タブ [wpf-controls]
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 クワッド コンテキスト メニュー
注意: この質問は更新されています。さらに下をお読みください。
やあ、
それぞれが独自の象限 (左上、右上、左下、右下) にある 4 つのサブメニューを持つカスタム コンテキスト メニューを作成したいと考えています。3ds Studio Max に似ています。
これは私がこれまでに問題に取り組んだ方法です: - カスタム WPF コントロールを作成し、ContextMenu[1] から派生させます
- ContextMenu の 4 つの依存関係プロパティを宣言します。これらは表示されるメニューになり、XAML から設定できます。
- ContextMenu.IsOpenProperty に AddOwner、プロパティ変更通知を追加。
- IsOpen プロパティが変更された場合、4 つの子コンテキスト メニューの IsOpen プロパティを設定します。
- ContextMenuService を使用して、コンテキスト メニューの垂直オフセットと水平オフセットを設定し、各象限に表示します。実際の高さと幅のプロパティをバインドしてオフセットを計算します。
[1] コンテキスト メニューから派生する必要があります。そうしないと、ウィンドウの ContextMenu プロパティに割り当てることができません。
これは機能しているように見えますが、メニューが開いたままにならないという問題があります(フォーカスがメニューの外にあるため、メニューが閉じられています) が、Reflector.NET を使用してこれを回避できると確信しています。
これは、私が作成しようとした最初のカスタム WPF コントロールです。これが最善のアプローチであるかどうかはわかりません。
このクワッド コンテキスト メニューの作成方法に関する提案/アイデアはありますか?
wpf - DependencyProperty: VS はバインディングのソースを見つけることができません
ユーザーが希望する色で描画されるように、Forderground 依存関係プロパティを UIControl にバインドしようとしています。myUiControl.Foderground は autocopletes であるため、次のように XAML ファイルにバインドするだけでよいと考えました。
VS をデバッグすると、この DependencyProperty とバインドするためのソースが見つからないと言われますが、これがなぜなのかわかりませんでした。
また、デバッグ中にオブジェクトのすべての依存関係プロパティを一覧表示するにはどうすればよいですか?
c# - プログラムで列と行を WPF Datagrid に追加する
私はWPFが初めてです。WPF の DataGrid に列と行をプログラムで追加する方法を知りたいだけです。Windows フォームで行っていた方法です。テーブルの列と行を作成し、DataGrid にバインドします。
WPF DataGrid は、ASP.net および Windows フォームで使用されているものとは少し異なると思います (間違っている場合は修正してください)。
ユーザーがセル内のデータを編集できるように、DataGrid に描画する必要がある行と列の数があります。
wpf - WPFユーザーコントロール
私は今、非常に大きな問題に直面しています。つまり、ウィンドウに追加したユーザーコントロール(自分で作成したもの)があります...ボタンをクリックすると、ウィンドウに別のユーザーコントロールが表示されます。コントロール(usercontrol)
皆さんありがとう
wpf - タブを閉じる際の問題
タブで整理された WPF アプリがあります。ユーザーがタブを閉じることができるように、各タブ項目ヘッダーに小さなボタンを追加しました。
ユーザーが小さなボタンをクリックすると、tabControl から tabItem が削除されます。
tabControl.Items.Remove(tabItem);
この結果、tabItem が消えます。それで問題ありませんが、ここで問題が発生します。
TabItem は表示されません (良い) が、まだ存在します (悪い)。内部にタイマーを配置すると、タイマーが Tick を実行します。さらに重要なことは、200.000 レコードのデータグリッドがあり、タブを閉じると、ガベージ コレクターが期待どおりにメモリを解放しません。
この問題について Google に問い合わせたところ、説明されているアドバイスのいくつかを実装しました。うまくいきませんでした。
誰でも私を助けることができますか?ありがとう
wpf - WPFでスクロールバーを有効にする
ウィンドウが垂直方向に小さすぎると、WPFアプリケーションが折り目の下にあるものを非表示にするという問題が発生しています。XAMLを使用して、アプリ全体に垂直スクロールバーを表示し、ユーザーがスクロールして残りのコンテンツを表示できるようにするにはどうすればよいですか?
wpf - wpfのリンクボタン
ButtonをLinkButtonのように見せるために、ハイパーリンクを使用したくない場合はどうすればよいですか... !!
助言がありますか
wpf - WPF でカスタム ゲージ コントロールを作成する最良の方法は?
作業中のプロジェクト用に WPF でゲージ コントロールを作成する必要があります。ゲージ制御とは、従来の車の速度計に似たものを意味します。円周に数字と目盛りが付いた円形の面と、現在の値を指す針です。雇用主にサードパーティ製のコントロールを購入してもらうか、どこかで無料のものを見つけてもらうこともできますが、何よりも好奇心のために、自分で書きたいと思っています。
私が最初に考えたのは、テンプレートを使用して既存のコントロールを「スキン」することでした。たとえば、Minimum、Maximum、および Value プロパティを持つ ProgressBar のようなものです。ただし、これで必要な柔軟性が得られるとは思いません。
現在の値を指す針をアニメーション化して、ゲージの値が変化したときに針が古い値から新しい値に移動するようにしたいと思います。これを行う最も簡単な方法は、針を表す何らかの形状またはジオメトリを用意し、関連する度数の RotateTransform を適用して、針が正しい値を指すようにすることだと考えました。アニメーションの To プロパティは、バインディングを介して「値度」プロパティに設定されます。
私が取ることができる3つの基本的なアプローチがあるように私には思えます:
1 つのカスタム FrameworkElement を使用して、
FrameworkElement から派生できるゲージ全体を表し、その OnRender メソッドをオーバーライドしてから、DrawingContext を使用してゲージ面と針の両方を描画します。これは、RotateTransform を使用して針を直接アニメーション化することができなくなり、値が変化するたびにゲージ全体を再描画する必要があることを意味します。ゲージ面は描画コードの大部分を表しますが、めったに変更されないため、これは私には非効率的です。ただし、このアプローチは、使用される要素の数の点で最も軽量です。
2 つのカスタム FrameworkElements を使用します。1 つは顔用、もう 1 つは針用
です。現在、このアプローチに傾倒しています。1 つの要素は顔を表し、もう 1 つの要素は針を表します。これにより、RotateTransform で針要素をターゲットにすることができます。その場合、ゲージ コントロールは 3 つの要素で構成されます。面、針、およびそれらの両方を保持する Panel コンテナー (つまり、Canvas、Grid など) です。したがって、1 つではなく 3 つの要素であるため、最初のアプローチほど軽量ではありません。
DrawingVisuals を使用して顔と針を描画し
ます DrawingVisual クラスについても読みましたが、FrameworkElement から派生させて OnRender をオーバーライドするのではなく、なぜこれを使用するのかについては少し混乱しています。とにかくカスタムFrameworkElement。このアプローチは、2 番目のアプローチよりも利点がなく、より多くのコードが必要になるように思われますが、何か不足している可能性があります。
人々がどのアプローチが最善であると考えているか、またその理由についての考えやアドバイスは大歓迎です!