0


C# コントロールに新しいスキンを作成する方法はありますか?
たとえば、デフォルトのリストビューと同じ機能を持ちながら、外観がまったく異なるリストビューが必要です。
ありがとう :)

4

5 に答える 5

4

ライブラリによって異なります。

Win Forms: 退屈で本当に難しい。1 つのコントロールのスタイリングが終了すると、髪の毛がなくなります。

Wpf: Wpf はまさにそのために構築されています (そしてもちろん、他の多くの素晴らしいことも)。このページは大いに役立つかもしれません。

アプリケーションを完全にスキン化する場合は、WPF を学習して使用することをお勧めします。私もそうでしたが、カスタマイズ性だけでなく、一般的にすべてが素晴らしいです. これは優れたプラットフォームですが、DirectX とより多くのリソースが必要なため、移植性が高くありません。

于 2011-01-29T16:00:47.227 に答える
2

それでも、Windows.Forms を使用していて、コントロールの外観を変更したい場合は、少し難しくなります。

コントロールから派生クラスを作成し、OnPaint および OnPaintBackground イベントをオーバーライドして、独自のコードを実装する必要があります。

于 2011-01-29T17:04:57.150 に答える
1

私は前にこのルートをたどりました、そしてそれはきれいではありません。結局、私はコントロールのスキンを変更しませんでした。WinFormsツリービューに問題がありました。それはまた別の話です。

WinFormsでは、はい、編集するコントロールの派生バージョンを作成します。そして、OnPaintと関連するPaintメソッドを完全に理解します。ツリービューの場合、これは悪夢だったので、最終的には実行しませんでした。コントロールを最初から描画した経験がない限り、このオプションは検討しません。

WPFを使用している場合、コントロールはすべて視覚的な要素で構成されており、変更もはるかに簡単です。WPFにはコントロールが少なく、開発者が必要に応じてそれらを編集することに依存しています。個人的には、WinFormsのようなより基本的なWPFコントロールが必要ですが、これもまた別の話です。

他の2つのオプションは、まったく新しいコントロールを最初から開始するか、オンラインで気に入ったコントロールの外観を見つけて購入することです。多くのWebサイトは、カスタムメイドの.netコントロールを販売しています。

于 2011-01-29T22:37:39.513 に答える
1

はい、WPF ではすべてが可能です。ただし、Windows フォームのみに慣れている場合は、WPF は新しい概念を備えた新しいテクノロジであり、習得するのに時間がかかることに注意してください。

于 2011-01-29T15:59:52.073 に答える
1

Femaref が言うように、WPF には多くの可能性がありますが、WinForms ではかなり困難です。

彼がリンクしているページよりも少し先に進みたい場合 (スタイルのみをカバーしています)、同じページのサイドバーにある「テンプレートとスタイル」のポイントに興味があるかもしれません:テンプレートとスタイル、およびテンプレート部分そこに:テンプレート。テンプレートを使用すると、スタイルではできないことのほとんどを行うことができます。非常に基本的な例 (テンプレートに関するほぼすべてのチュートリアルで見られるもの) は、楕円形のボタンです。さらに、トリガーを使用して、マウスオーバーやマウスクリックの外観など、他のものを再定義することもできます。

それが役立つことを願っています;)

于 2011-01-29T16:48:36.610 に答える