問題タブ [custom-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.
silverlight - Silverlight でコントロールの既定のスタイルを参照する
generic.xaml に表示される既定のスタイルを参照するにはどうすればよいですか?
カスタム コントロールの既知のスタイルを返す静的クラスを作成しようとしています。App.xaml に存在するスタイルを取得する方法は知っていますが、一般的なスタイルを取得する方法がわかりません。
ありがとう!
wpf - 他のウィンドウがフォーカスされているときにポップアップ コントロールを非表示にする
テキストボックスのオートコンプリートを再作成しようとするカスタム UserControl があります。ユーザーが入力すると、テキストは提供されたアイテムのコレクションをフィルター処理するために使用され、Popup はユーザーが入力したものと一致するアイテムを含む ListBox を表示します。
残念なことに、ユーザーがアプリケーションから別のウィンドウ (ブラウザー、MSWord、何でも!) に切り替えることにした場合、ポップアップは他のすべてのウィンドウの上に残ります!
また、ポップアップを開いた状態でウィンドウ (カスタム コントロールをホストする) を移動すると、ポップアップは所定の位置に留まります (ウィンドウに追従しません)。ちょっと面白いですが、明らかに受け入れられない行動です。私は周りを見回しましたが、これについて2年間答えられなかった投稿を1つだけ見つけました:(
vb.net - カスタムコントロールを作成しています...'text'プロパティを作成できませんか?
解決
私はいくつかのグーグルをして、このフォーラムの投稿を見つけました、そしてこれが私がする必要があったことです:
私はカスタムコントロールの作成に本当に慣れていないので、プロセス全体の詳細をすべて把握しているわけではありません。
チェックボックスと同様に機能するカスタムコントロールを作成していますが、2つの画像をオン/オフとして使用しています。Textプロパティを追加しようとしていますが、次の警告が表示されます。
「property'Text'は、基本クラス'UserControl'のオーバーライド可能なメソッドをシャドウします。基本メソッドをオーバーライドするには、このメソッドを'Overrides'と宣言する必要があります。」
わかりました、それで問題ありません。宣言をに変更しましOverrides Property Text() As String
たが、テストしようとすると、「テキスト」がプロパティの下に表示されません。結果を得るために必要な追加の手順はありますか?
詳細
私のコントロールは2つ(またはあなたの見方によっては3つ)で構成されています:
- PictureBox-チェックされている/チェックされていない画像を表示します
- ラベル-コントロールに表示されているテキスト
- PictureCheckBox-これは実際のコントロールの名前です
PictureBoxはPictureCheckBoxの左側にドッキングされ、ラベルは右側にドッキングされます。
c# - インターフェイスとしてのUserControlですが、Designerに表示されます
つまり、バジリオンを含むフォームを含むC#WinFormsプロジェクトがありますUserControl
。それぞれが、独自の特定のメンバーに加えて、UserControl
すべてのメソッド、プロパティなどを自然に公開します。UserControl
UserControl
これらの処理の複雑さを軽減する1つの方法は、インターフェイスを介してアクセスすることだと私は考えてきました。したがって、ドラッグアンドドロップUserControl
でフォームに配置する代わりに、コンストラクターで次のようにします。
SomeCustomerNameUserControl
を実装しICustomerName
、当然、ICustomerName
私が本当に気にかけている特定のプロパティを含みます(たとえば、FirstName
およびLastName
)。このようにして、私はメンバーUserControl
を通して参照することができcName
、すべてのメンバーに悩まされる代わりに、のUserControl
メンバーだけを取得しICustomerName
ます。
すべてうまくいっていますが、問題は、このようにするとSomeCustomerNameUserControl
、Designerに表示されないことです。私がこれを行う方法を知っている人はいますが、それでもUserControl
フォームのデザイン面に表示されますか?
編集:これを行う1つの方法は、それほど複雑ではありませんが、コントロールをベースフォームに配置することです。デフォルト(C#の場合)では、コントロールメンバーはプライベートです。次に、インターフェイスを介して公開する各コントロールのプロパティを作成します。
ただし、もっと複雑な場合でも、これを行う他の方法に興味があります。IDesignerHostでそれを行う方法はいくつかあるようですが、適切な例が見つかりません。
asp.net - デザインビューで必要なフラグ制御プロパティ
コントロールをページに配置するときに、コントロールのコンシューマーにプロパティに値を与えるように強制したいと思います。
VisualStudioで、ユーザーコントロールに属性SRCまたはALTなしで<img>タグを作成すると、SRCおよびALTが必須の属性であるという下線が引かれます。これはエディターによるタグの特別な処理にすぎないと思いますが、コントロールに同様の動作を定義する方法はありますか?
コントロールに次のように定義されたプロパティがある場合:
カスタム属性またはデザイナーでフラグを立てる他の何かを使用する方法はありますか?
.net - カスタムリピーターへの列機能の追加
表形式で表示するために、持っているカスタムリピーターを拡張しようとしています(グリッドビューにかなり似ています)。私が概念的に達成しようとしているのは、次の方法で適用できるものに到達することです。
誰かがこれを達成する方法を提案できますか?どういうわけか、ITemplateを実装するクラスのコレクションを作成できますか?
ありがとう、スティーブ
!編集!
これは、ITemplateプロパティを使用して新しいクラス(Col)を作成し、次にリピーターでgeneric.list(of Col)プロパティを作成することで実現しました。したがって、アイテムを追加するには、次のようにします。
誰かがより良い解決策を持っているかどうか私に知らせてください
wpf - UserControlのすべてのバインディングを一度に更新します
表示がVisibleに変わったら、UserControlのすべてのバインディングを更新する必要があります。ほとんどすべてのバインディングがユーザーコントロールのDataContextプロパティにバインドされているため、そのバインディングのターゲットを更新しようとしています。
しかし、私はメソッドnull
の結果として得られ、GetBindingExpression(..)
これを間違って使用しているかどうか疑問に思っています。
また、コントロールのすべてのバインディングを更新する他の良い方法はありますか(ソースとしてDataContextを使用します)。
wpf - カスタムコントロールのコレクションプロパティのDataBindingが失敗する
私はユーザーコントロールを持っています-「ControlBase」と言います。これには、「DependencyObject」から継承されたクラスObservableCollection<InheritedFromDO>
である「SomeItems」プロパティがあります。
の子クラスのマークアップを作成するときに、「SomeItems」コレクションを開始したいと思います。しかし、コントロールにはかなり通常のDataContextがあり、バインディングは通常の場合に機能しますが、どういうわけか、そのマークアップでバインディングを使用することはできません。InheritedFromDO
ControlBase
次のようになります。
出力は次のようになります。
System.Windows.Data Error: 2 : Cannot find governing FrameworkElement or FrameworkContentElement for target element. BindingExpression:Path=Id; DataItem=null; target element is 'SomeItem' (HashCode=26965808); target property is 'DepPropertyOne' (type 'Object')
それを機能させる方法はありますか?
wpf - WPF カスタム描画複数プログレス バー
アイテムのグループを処理する際に、グループのステータスの統一されたイメージを表示したかったので、基本的に、すべて同じセルに透明な背景とさまざまな色の前景を持つ多数のプログレスバーのグリッドを作成しました。
いくつかの透明度アーティファクト (紫色のバーは実際には緑色の下に紫色であり、時には上に描画されるなど) に遭遇しており、少し無駄に思えます。それで、私は自分で作ることにしましたが、今はそれを行う方法について少し麻痺しています. FrameworkElement の OnRender で DrawingContext を使用しますか、それとももっと簡単なものがありますか? 独自のコントロールを作成する際の一般的なルールはありますか?
簡単に手に入るので、円グラフに切り替えることを考えましたが、すぐに既製ではないことをしました.
ありがとう!