問題タブ [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.
wpf - WPF - UserControl のデフォルトのコンテンツ属性
私は UserControl を作成していますが、デフォルトのコンテンツ プロパティとして機能させたいプロパティを装飾するために使用する属性の名前を思い出せません。
具体的な例を挙げると、次のようなプロパティ構文を使用して設定できる「タイトル」というプロパティがあるとします-
しかし、コントロールの消費者は、次のような要素構文を使用したい場合があります -
このサポートを有効にするために Title プロパティに追加する必要がある属性があることは知っていますが、それが何であるかを忘れてしまい、どこにも見つかりません。
誰か私の記憶をリフレッシュしてくれませんか? また、ItemsControl から継承する CustomControls に作用する同様の属性を探しています。
asp.net - カスタムの子要素を持つASP.NETのカスタム要素
ユーザーコントロールを使用してASP.NETでカスタムタグを定義できることを知っています。しかし、私が知る限り、これらのコントロールに属性を追加することしかできません。より複雑なデータを埋め込むことができるようにしたいと思います。これは少し簡単です。
これはASP.NETで可能ですか?ListViewを拡張する必要がありますか?それとも、より良い、より正しい解決策がありますか?
wpf - WPF スタイルのアクティブ アイテム
Web サイトのナビゲーション バーのように、WPF で再利用可能なナビゲーション スタイルのカスタム コントロールを作成しようとしています。アプリ内のすべてのメイン ページへのリンクが含まれます。このコントロールは、NavigationWindow 内のすべてのページの上に配置できます。Web サイトのように、ページ全体で一貫したルック アンド フィールを提供します。
私の問題は、現在のページのリンクを他のページのリンクとは異なるスタイルにすることです。これにより、すぐにそれを見て、どのページにいるのかがわかります。コントロールは各ページで同じであるため、どのページが「アクティブ」であるかを伝え、適切にリンクするようにスタイルを設定する必要があります。
私が最初に考えたのは、Is<Page>Active プロパティを各ページに 1 つずつコントロールに配置し、そのページで適切なプロパティを true に設定することでした。(または、多くのプロパティを持つ代わりに、Enum 値を受け入れる 1 つのプロパティを使用することもできます)
例:
ヘッダー カスタム コントロールのコントロール テンプレートで、このプロパティを監視する DataTrigger を作成できます。
そのすべての背景の後、ここに私の質問があります。 これは機能しますが、トリガーは 1 つのリンクにのみ適用される「IsHomePageActive」プロパティを直接参照する必要があるため、DataTrigger とその中のすべての Setter を複製する必要があります。そのため、実際の STYLE がまったく同じであるにもかかわらず (つまり、Setter は同じです)、リンクごとに異なる Style が必要です。唯一の違いは、トリガーが監視しているプロパティです。
何百行もの XAML が重複してしまうことなく、これを行う方法 (または同じ最終結果を持つもの) はありますか?
wpf - カスタム/ユーザーコントロール
私にはそのようなタスクがあります-2つのコントロール(WPFToolkitのDataGridと標準ツールバー)を結合するコントロールを作成します。大規模な場合、それがどのように結合を制御するかは問題ではありません。必要なものを構築するために使用できる一般的な方法を見つける必要があります。一見すると、ユーザーコントロールのようなもの、つまりコントロールの構成が必要です。これを全体として実装して、再利用できます。ただし、私のタスクでは、XAMLで複合コントロールを調整する可能性が必要です。したがって、ツールバーとDataGridを作成する場合は、両方のプロパティとイベントを公開する必要があります。したがって、XAMLで、たとえば、データグリッドの列とツールバーのバーの両方を設定できます。
(loacalパーサーが何らかの理由でスペースを入力しなかったため、タグ名に意図的にスペースを入れました)
今のところ私に適していない唯一の決定は、カスタムコントロールをDataridから継承し(DataGridはこのペアでより重要であるため)、datagridとツールバーの両方を含むテンプレートを再定義することです。これにより、データグリッドのすべての機能が得られますが、ツールバー部分を取得する場合は、コードを介して実行する必要があります。つまり、プログラムでアクセスを取得するなど、仮想および論理ツリーで検索する必要があります。これは、かなりの決定ではありません。初心者がこのタスクを解決するのを手伝ってください)よろしくお願いします...
asp.net - 一意の「ID」属性の代わりに、ASP.netの子コントロール用に生成されたHTMLの「name」属性
カスタムASP.netサーバーコントロール用に生成されたHTMLコードは、id属性ではなく、子コントロールのname属性を生成します。このようなもの :
カスタムコントロール自体のIDは明らかに適切です。
私にとってさらに奇妙なのは、IDが時々生成されることです(どのような条件であるかはわかりません)。ただし、FindControl()
そのIDを持つaは、サーバー側でnullを返します。FindControl()
name属性の値を使用すると、問題なく機能します。
このようなもの :
上記の場合、FindControl("GridView2$ctl02$editdis$ctl00")
正常に動作しますが、FindControl("GridView2_ctl02_editdis_ctl00")
動作しません。
一貫性のある予測可能なIDを確保するにはどうすればよいですか?
.net - カスタムコントロールのプロパティをグループ化する
Visual StudioなどのIDEで、System.Windows.Forms.Buttonコントロールのプロパティを表示すると、一連のプロパティを公開するいくつかのプロパティが表示されます。例:FlatAppearance、Font、Location、Marginなど。
カスタムコントロールでも同様のことをしたいと思います。
背後にあるコードが間違っていることは知っていますが、これが私がやろうとしていることの例です。
IDEのカスタムコントロールのプロパティウィンドウで、プロパティの状態を表示し、プロパティの可視性とイベント管理を設定するために表示することができます。
どうもありがとう
.net - カスタムの「HorizontalRule」コントロールで何が問題になっていますか?
アプリケーションで使用するために、次の(非常に単純な)コントロールを作成しました(簡潔にするためにコメントを削除しました)。
免責事項:私は自分のコントロールをペイントするのは初心者です。
セパレーターに高さ1のエッチングされた長方形を提案する、Vista UXガイドラインの推奨事項に基づいて、この方法で線を引くことにしました。
静的な場合、これは問題ないように見えますが、このコントロールをウィンドウに配置してサイズを変更すると(アンカーなどを使用して)、アーティファクトが再描画されることに気付きました。クライアントの長方形の幅全体に境界線を再描画していますが、実際にはペイントされていないようです。ホリゾンタルルールのコンストラクターで、またはそれが埋め込まれている形式でDoubleBufferedを有効にしても、違いはないようです。
私は何が間違っているのですか?
アップデート:
提案に従って、base.OnPaintを最初ではなく最後に呼び出してみました。それが何を変えたのかはわかりませんし、何も変わっていないようです。
背景を描かないことは何の役にも立ちませんでした。アーティファクトはまだ発生しますが、背景色も取得されないため、代わりに水平線の下にあるものの画像が表示されました。
javascript - Visual Studio 用のカスタム DTD の作成
次のように、JavaScript をテンプレート コンテンツとして使用する、いくつかのカスタム テンプレート コントロールがあります。
コードの色付けが有効になり、バリデーターが for ループ定義の「<」を吐き出さないように、VisualStudio が要素とまったく同じようにコンテンツを処理するようにします。
私の理解では、これを解決するにはカスタム DTD を作成する必要があります。これを行う方法を知っている人はいますか?そのためのリソースへのリンクがありますか?