| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

MyMemoWiki

「WPF コントロールライブラリ」の版間の差分

提供: MyMemoWiki
ナビゲーションに移動 検索に移動
 
(同じ利用者による、間の1版が非表示)
1行目: 1行目:
==WPF コントロールライブラリ==
+
==[[WPF コントロールライブラリ]]==
[[WPF][Silverlight]]
+
[[WPF]] | [[Silverlight]] |
 
{{amazon|4798114200}}
 
{{amazon|4798114200}}
  
*WPFはUIパッケージに期待する標準コントロールの大部分を提供します(DataGridなど、少数の例外もあり)。
+
*[[WPF]]はUIパッケージに期待する標準コントロールの大部分を提供します(DataGridなど、少数の例外もあり)。
 
*コンテンツモデルとテンプレートがビジュアルの大幅なカスタマイズを可能とするため、コントロールの重要な部分は、コントロールが提供するもでると対話モデルということになる。
 
*コンテンツモデルとテンプレートがビジュアルの大幅なカスタマイズを可能とするため、コントロールの重要な部分は、コントロールが提供するもでると対話モデルということになる。
 
==ボタン==
 
==ボタン==
 
*基本的にボタンは、「クリック可能」なもの
 
*基本的にボタンは、「クリック可能」なもの
 
*ボタンは、標準のボタンの規定のルックアンドフィール以外は、BottonBaseのクリックイベント以外に重要な物は追加しません。
 
*ボタンは、標準のボタンの規定のルックアンドフィール以外は、BottonBaseのクリックイベント以外に重要な物は追加しません。
*CheckBoxとRadioButtonは、いずれも IsChecked(データモデル)プロパティとIsThreeState(対話モデル)プロパティをサポートするトグルボタンを表す。
+
*CheckBoxと[[R]]adioButtonは、いずれも IsChecked(データモデル)プロパティとIsThreeState(対話モデル)プロパティをサポートするトグルボタンを表す。
 
*IsThreeStateがTrueの場合、Checked、Unchecked、Indeterminate(IsThreeStateがFalseの場合この状態にはならない)を切り替えることが出来る。
 
*IsThreeStateがTrueの場合、Checked、Unchecked、Indeterminate(IsThreeStateがFalseの場合この状態にはならない)を切り替えることが出来る。
 
  <StackPanel Name="MainPanel">
 
  <StackPanel Name="MainPanel">
 
     <Button Margin="5" VerticalAlignment="Top">Button</Button>
 
     <Button Margin="5" VerticalAlignment="Top">Button</Button>
     <RadioButton>Radio</RadioButton>
+
     <[[R]]adioButton>[[R]]adio</[[R]]adioButton>
     <RadioButton IsChecked="True">Radio</RadioButton>
+
     <[[R]]adioButton IsChecked="True">[[R]]adio</[[R]]adioButton>
     <RadioButton>Radio</RadioButton>
+
     <[[R]]adioButton>[[R]]adio</[[R]]adioButton>
 
     <CheckBox>Check</CheckBox>
 
     <CheckBox>Check</CheckBox>
 
     <CheckBox>Check</CheckBox>
 
     <CheckBox>Check</CheckBox>
25行目: 25行目:
  
 
==リスト==
 
==リスト==
*WPFはテンプレートのサポートが充実しているため、ListBox、ComboBox、DomainUpDown、ラジオボタンリストのような物までが、基本コントロールの上位に異なるテンプレートを適用するだけで実現できる。
+
*[[WPF]]はテンプレートのサポートが充実しているため、ListBox、ComboBox、DomainUpDown、ラジオボタンリストのような物までが、基本コントロールの上位に異なるテンプレートを適用するだけで実現できる。
*WPFには、ListBox、ComboBox、ListView、TreeViewの4つの基本リストコントロールがある。
+
*[[WPF]]には、ListBox、ComboBox、ListView、TreeViewの4つの基本リストコントロールがある。
 
===ソース===
 
===ソース===
 
*すべてのリストコントロールには、2つのソースのいずれかを使用して項目を代入できる。
 
*すべてのリストコントロールには、2つのソースのいずれかを使用して項目を代入できる。
43行目: 43行目:
 
===ListBoxとComboBox===
 
===ListBoxとComboBox===
 
*オブジェクトモデルの観点からいうとこれらはほぼ同一
 
*オブジェクトモデルの観点からいうとこれらはほぼ同一
*ItemSourceプロパティを使用することが推奨され、IEnumerableを実装する任意の型をソースとして使用できる。
+
*ItemSourceプロパティを使用することが推奨され、[[IE]]numerableを実装する任意の型をソースとして使用できる。
*.NET3.0からこれらのシナリオで使用するために特別に設計されたObservableCollection<T>という新しいコレクションが提供される。
+
*[[.NET]]3.0からこれらのシナリオで使用するために特別に設計されたObservableCollection<T>という新しいコレクションが提供される。
 
*ObservableCollection<T>は、リストシナリオのデータソースとして変更追跡のための複数のインターフェースを実装している
 
*ObservableCollection<T>は、リストシナリオのデータソースとして変更追跡のための複数のインターフェースを実装している
 
*まったく新しいテンプレートを記述しなくてもコントロールの外観を調整出来るようになる一連のプロパティを提供。
 
*まったく新しいテンプレートを記述しなくてもコントロールの外観を調整出来るようになる一連のプロパティを提供。

2020年2月16日 (日) 04:34時点における最新版

WPF コントロールライブラリ

WPF | Silverlight |

  • WPFはUIパッケージに期待する標準コントロールの大部分を提供します(DataGridなど、少数の例外もあり)。
  • コンテンツモデルとテンプレートがビジュアルの大幅なカスタマイズを可能とするため、コントロールの重要な部分は、コントロールが提供するもでると対話モデルということになる。

ボタン

  • 基本的にボタンは、「クリック可能」なもの
  • ボタンは、標準のボタンの規定のルックアンドフィール以外は、BottonBaseのクリックイベント以外に重要な物は追加しません。
  • CheckBoxとRadioButtonは、いずれも IsChecked(データモデル)プロパティとIsThreeState(対話モデル)プロパティをサポートするトグルボタンを表す。
  • IsThreeStateがTrueの場合、Checked、Unchecked、Indeterminate(IsThreeStateがFalseの場合この状態にはならない)を切り替えることが出来る。
<StackPanel Name="MainPanel">
    <Button Margin="5" VerticalAlignment="Top">Button</Button>
    <RadioButton>Radio</RadioButton>
    <RadioButton IsChecked="True">Radio</RadioButton>
    <RadioButton>Radio</RadioButton>
    <CheckBox>Check</CheckBox>
    <CheckBox>Check</CheckBox>
    <CheckBox IsThreeState="True">Check</CheckBox>
</StackPanel>

1443 wpf button.jpg

クラス階層

1444 wpf button hierarchy.jpg

リスト

  • WPFはテンプレートのサポートが充実しているため、ListBox、ComboBox、DomainUpDown、ラジオボタンリストのような物までが、基本コントロールの上位に異なるテンプレートを適用するだけで実現できる。
  • WPFには、ListBox、ComboBox、ListView、TreeViewの4つの基本リストコントロールがある。

ソース

  • すべてのリストコントロールには、2つのソースのいずれかを使用して項目を代入できる。

Itemsプロパティ

  • リスト内部のデータ項目リストにデータを追加
var list = new ListBox();
list.Items.Add("a");
list.Items.Add("b");
list.Items.Add("c");

ItemSourceプロパティ

  • リストが表示するデータ項目のコレクションをリストコントロールに提供

<blockquote>リストコントロールの外部にあるデータを維持できる</blockquote>

string[] items = { "1", "2", "3" };
var list = new ListBox();
list.ItemsSource = items;

ListBoxとComboBox

  • オブジェクトモデルの観点からいうとこれらはほぼ同一
  • ItemSourceプロパティを使用することが推奨され、IEnumerableを実装する任意の型をソースとして使用できる。
  • .NET3.0からこれらのシナリオで使用するために特別に設計されたObservableCollection<T>という新しいコレクションが提供される。
  • ObservableCollection<T>は、リストシナリオのデータソースとして変更追跡のための複数のインターフェースを実装している
  • まったく新しいテンプレートを記述しなくてもコントロールの外観を調整出来るようになる一連のプロパティを提供。