Silverlight-radiobutton

提供:Dev Guides
移動先:案内検索

Silverlight-RadioButton

*RadioButton* は、ユーザーがオプションのグループから単一のオプションを選択できるボタンです。 ユーザーは、オプションの関連リストから単一のオプションを選択できますが、これらは相互に排他的です。 それには2つのオプションしかありません-
  • 選択済み

  • {ブランク}

  • クリアした

  • {ブランク}

    *RadioButton* もToggleButtonから派生し、同じ *IsChecked* プロパティと同じ *Checked、Unchecked* 、および *Indeterminate* イベントを使用します。 これらに加えて、 *RadioButton* は *GroupName* という名前の単一のプロパティを追加します。これにより、ラジオボタンをグループに配置する方法を制御できます。
  • 通常、ラジオボタンはコンテナごとにグループ化されます。 つまり、1つのStackPanelに3つのRadioButtonコントロールを配置すると、3つの中の1つだけを選択できるグループを形成します。

  • 一方、2つの別々のStackPanelコントロールにラジオボタンの組み合わせを配置すると、2つの独立したグループが手になります。

    *RadioButton* クラスの階層的な継承は次のとおりです-

Hierarchical RadioButton

以下は、 RadioButton の最も一般的に使用される*プロパティ*です。

以下は、RadioButtonの最も一般的に使用されるプロパティです。

Sr. No. Property & Description
1

Background

コントロールの背景を提供するブラシを取得または設定します。 (Controlから継承)

2

BorderBrush

コントロールの境界線の塗りつぶしを記述するブラシを取得または設定します。 (Controlから継承)

3

BorderThickness

コントロールの境界線の太さを取得または設定します。 (Controlから継承)

4

Content

ContentControlのコンテンツを取得または設定します。 (ContentControlから継承されます)

5

ClickMode

デバイスの動作に関して、Clickイベントがいつ発生するかを示す値を取得または設定します。 (ButtonBaseから継承)

6

ContentTemplate

ContentControlのコンテンツを表示するために使用されるデータテンプレートを取得または設定します。 (ContentControlから継承されます)

7

FontFamily

コントロール内のテキストの表示に使用されるフォントを取得または設定します。 (Controlから継承)

8

FontSize

このコントロール内のテキストのサイズを取得または設定します。 (Controlから継承)

9

FontStyle

テキストがレンダリングされるスタイルを取得または設定します。 (Controlから継承)

10

FontWeight

指定したフォントの太さを取得または設定します。 (Controlから継承)

11

Foreground

前景色を説明するブラシを取得または設定します。 (Controlから継承)

12

Height

FrameworkElementの推奨される高さを取得または設定します。 (FrameworkElementから継承されます)

13

HorizontalAlignment

FrameworkElementがパネルやアイテムコントロールなどのレイアウトの親で構成されるときにFrameworkElementに適用される水平方向の配置特性を取得または設定します。 (FrameworkElementから継承されます)

14

IsChecked

ToggleButtonがチェックされているかどうかを取得または設定します。 (ToggleButtonから継承)

15

IsEnabled

ユーザーがコントロールを操作できるかどうかを示す値を取得または設定します。 (Controlから継承)

16

IsPressed

ButtonBaseが現在押された状態にあるかどうかを示す値を取得します。 (ButtonBaseから継承)

17

IsThreeState

コントロールが3つの状態をサポートするかどうかを示す値を取得または設定します。 (ToggleButtonから継承)

18

Margin

FrameworkElementの外側のマージンを取得または設定します。 (FrameworkElementから継承されます)

19

Name

オブジェクトの識別名を取得または設定します。 XAMLプロセッサがXAMLマークアップからオブジェクトツリーを作成するとき、ランタイムコードはこの名前でXAMLで宣言されたオブジェクトを参照できます。 (FrameworkElementから継承されます)

20

Opacity

オブジェクトの不透明度を取得または設定します。 (UIElementから継承)

21

Resources

ローカルに定義されたリソースディクショナリを取得します。 XAMLでは、XAMLの暗黙的なコレクション構文を使用して、frameworkElement.Resourcesプロパティ要素の子オブジェクト要素としてリソース項目を確立できます。 (FrameworkElementから継承されます)

22

Style

レイアウトおよびレンダリング中にこのオブジェクトに適用されるインスタンススタイルを取得または設定します。 (FrameworkElementから継承されます)

23

Template

コントロールテンプレートを取得または設定します。 コントロールテンプレートは、UIのコントロールの視覚的な外観を定義し、XAMLマークアップで定義されます。 (Controlから継承)

24

VerticalAlignment

FrameworkElementがパネルや項目コントロールなどの親オブジェクトで構成されるときにFrameworkElementに適用される垂直方向の配置特性を取得または設定します。 (FrameworkElementから継承されます)

25

Visibility

UIElementの可視性を取得または設定します。 表示されないUIElementはレンダリングされず、目的のサイズをレイアウトに伝えません。 (UIElementから継承)

26

Width

FrameworkElementの幅を取得または設定します。 (FrameworkElementから継承されます)

以下に、 RadioButton で一般的に使用される*メソッド*を示します。

以下は、RadioButtonの最も一般的に使用されるメソッドです。

Sr. No. Method & Description
1

ClearValue

依存関係プロパティのローカル値をクリアします。 (DependencyObjectから継承)

2

FindName

指定された識別子名を持つオブジェクトを取得します。 (FrameworkElementから継承されます)

3

OnApplyTemplate

アプリケーションコードまたは内部プロセス(再構築レイアウトパスなど)がApplyTemplateを呼び出すたびに呼び出されます。 最も簡単に言えば、これは、UI要素がアプリに表示される直前にメソッドが呼び出されることを意味します。 このメソッドをオーバーライドして、クラスのデフォルトのテンプレート後ロジックに影響を与えます。 (FrameworkElementから継承されます)

4

OnContentChanged

Contentプロパティの値が変更されたときに呼び出されます。 (ContentControlから継承されます)

5

OnDragEnter

DragEnterイベントが発生する前に呼び出されます。 (Controlから継承)

6

OnDragLeave

DragLeaveイベントが発生する前に呼び出されます。 (Controlから継承)

7

OnDragOver

DragOverイベントが発生する前に呼び出されます。 (Controlから継承)

8

OnDrop

Dropイベントが発生する前に呼び出されます。 (Controlから継承)

9

OnGotFocus

GotFocusイベントが発生する前に呼び出されます。 (Controlから継承)

10

OnKeyDown

KeyDownイベントが発生する前に呼び出されます。 (Controlから継承)

11

OnKeyUp

KeyUpイベントが発生する前に呼び出されます。 (Controlから継承)

12

OnLostFocus

LostFocusイベントが発生する前に呼び出されます。 (Controlから継承)

13

OnToggle

ToggleButtonがトグル刺激を受け取ると呼び出されます。 (ToggleButtonから継承)

14

SetBinding

提供されたバインディングオブジェクトを使用して、FrameworkElementにバインディングをアタッチします。 (FrameworkElementから継承されます)

以下に示すのは、 RadioButton で一般的に使用される events です。

以下は、RadioButtonの最も一般的に使用されるイベントです。

Sr. No. Event & Description
1

Checked

ToggleButtonがチェックされたときに発生します。 (ToggleButtonから継承)

2

Click

ボタンコントロールがクリックされたときに発生します。 (ButtonBaseから継承)

3

DataContextChanged

FrameworkElement.DataContextプロパティの値が変更されたときに発生します。 (FrameworkElementから継承されます)

4

DragEnter

入力システムが、この要素をターゲットとして基になるドラッグイベントを報告したときに発生します。 (UIElementから継承)

5

DragLeave

入力システムが、この要素を起点として基本的なドラッグイベントを報告したときに発生します。 (UIElementから継承)

6

DragOver

入力システムが潜在的なドロップターゲットとしてこの要素を持つ基本的なドラッグイベントを報告するときに発生します。 (UIElementから継承)

7

DragStarting

ドラッグ操作が開始されたときに発生します。 (UIElementから継承)

8

GotFocus

UIElementがフォーカスを受け取ったときに発生します。 (UIElementから継承)

9

Holding

この要素のヒットテスト領域上で未処理のホールド操作が発生すると発生します。 (UIElementから継承)

10

Intermediate

ToggleButtonの状態が不確定状態に切り替えられたときに発生します。 (ToggleButtonから継承)

11

IsEnabledChanged

IsEnabledプロパティが変更されたときに発生します。 (Controlから継承)

12

KeyDown

UIElementにフォーカスがあるときにキーボードキーが押されると発生します。 (UIElementから継承)

13

KeyUp

UIElementにフォーカスがあるときにキーボードキーが離されると発生します。 (UIElementから継承)

14

LostFocus

UIElementがフォーカスを失ったときに発生します。 (UIElementから継承)

15

SizeChanged

ActualHeightまたはActualWidthプロパティがFrameworkElementの値を変更したときに発生します。 (FrameworkElementから継承されます)

16

Unchecked

ToggleButtonのチェックが解除されたときに発生します。 (ToggleButtonから継承)

さまざまなボタンを含む簡単な例を見てみましょう。

<UserControl x:Class = "Buttons.MainPage"
   xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation"
   xmlns:x = "http://schemas.microsoft.com/winfx/2006/xaml"
   xmlns:d = "http://schemas.microsoft.com/expression/blend/2008"
   xmlns:mc = "http://schemas.openxmlformats.org/markup-compatibility/2006"
   mc:Ignorable = "d"
   d:DesignHeight = "300" d:DesignWidth = "400">

   <StackPanel x:Name = "LayoutRoot" Background = "White">
      <Button x:Name = "button" Content = "Click Me" HorizontalAlignment = "Left"
         Margin = "10" VerticalAlignment = "Top" Width = "75"/>

      <StackPanel>

         <Border Margin = "5" Padding = "5" BorderBrush = "Yellow" BorderThickness = "1"
            CornerRadius = "5">

            <StackPanel>
               <RadioButton Content = "Group 1"/>
               <RadioButton Content = "Group 1"/>
               <RadioButton Content = "Group 1"/>
               <RadioButton GroupName = "Group3" Content = "Group 3"/>
            </StackPanel>

         </Border>

         <Border Margin = "5" Padding = "5" BorderBrush = "Yellow" BorderThickness = "1"
            CornerRadius = "5">

            <StackPanel>
               <RadioButton Content = "Group 2"/>
               <RadioButton Content = "Group 2"/>
               <RadioButton Content = "Group 2"/>
               <RadioButton GroupName = "Group3" Content = "Group 3"/>
            </StackPanel>
         </Border>

      </StackPanel>

      <CheckBox x:Name = "checkBox1" Content = "Two States" HorizontalAlignment = "Left"
         VerticalAlignment = "Top" Checked = "HandleCheck" Margin = "10,0,0,0"
         Unchecked = "HandleUnchecked" Width = "90"/>

      <CheckBox x:Name = "checkBox2" Content = "Three States" HorizontalAlignment = "Left"
         VerticalAlignment = "Top" Width = "90" IsThreeState = "True" Margin = "10,0,0,0"
         Indeterminate = "HandleThirdState" Checked = "HandleCheck"
         Unchecked = "HandleUnchecked"/>

      <TextBox x:Name = "textBox1" HorizontalAlignment = "Left" Margin = "10,0,0,0"
         TextWrapping = "Wrap" VerticalAlignment = "Top" Width = "300"/>

      <TextBox x:Name = "textBox2" HorizontalAlignment = "Left"
         Margin = "10,0,0,0" Height = "23" TextWrapping = "Wrap"
         VerticalAlignment = "Top" Width = "300"/>

   </StackPanel>

</UserControl>

ここでは、ラジオボタンを保持する2つのコンテナがありますが、3つのグループがあります。 各グループボックスの下部にある最後のラジオボタンは、3番目のグループの一部です。 2つの状態と3つの状態のチェックボックスもあります。

以下は、*イベント実装*のC#コードです。

using System.Windows;
using System.Windows.Controls;

namespace Buttons {

   public partial class MainPage : UserControl {

      public MainPage() {
         InitializeComponent();
      }

      private void HandleCheck(object sender, RoutedEventArgs e) {
         CheckBox cb = sender as CheckBox;

         if (cb.Name == "checkBox1") textBox1.Text = "2 state CheckBox is checked.";
         else textBox2.Text = "3 state CheckBox is checked.";
      }

      private void HandleUnchecked(object sender, RoutedEventArgs e) {
         CheckBox cb = sender as CheckBox;

         if (cb.Name == "checkBox1") textBox1.Text = "2 state CheckBox is unchecked.";
         else textBox2.Text = "3 state CheckBox is unchecked.";
      }

      private void HandleThirdState(object sender, RoutedEventArgs e) {
         CheckBox cb = sender as CheckBox;
         textBox2.Text = "3 state CheckBox is in indeterminate state.";
      }

   }
}

上記のコードをコンパイルして実行すると、次のWebページが表示されます。

イベント実装