��8��@WPF�́u�R���g���[���v���w�ڂ��F�A�ځFWPF�����i1/2 �y�[�W�j

GUI�A�v���P�[�V�����J���̎���ł���u�R���g���[���v�𒆐S�ɁAWPF��UI�v�f�ɂ‚��Đ����B�R���g���[���̑S�̑��Ɗ�b��������A�p�r���Ƃɕ��ނ���B

» 2011�N01��06�� 00��00�� ���J
AځFWPF
ƖAvInsider^Insider.NET

powered by Insider.NET

uAځFWPFṽCfbNX

�A�ږڎ�

�@���C�A�E�g�p�̃p�l���ɑ����A����́A�u���[�U�[�^�A�v���P�[�V�����Ԃ̑Θb��S���v�f�v�A������R���g���[���𒆐S�Ƃ��āAWPF��UI�v�f�ɂ‚��Đ������Ă����B

���R���g���[��

�@�R���g���[���́A���[�U�[�Ƃ̑Θb��S���v�f�ŁAGUI�A�v���P�[�V�����J���̒��S�I���݂Ƃ�����B�R���g���[���́A�}�E�X��L�[�{�[�h�Ȃǂ̃��[�U�[������󂯎������A�����̓r���o�߂⌋�ʂ�K�X�\�������肷�邽�߂ɗ��p����B

���R���g���[���̑S�̑�

�@�܂��A�R���g���[����A�֘A����UI�v�f�̃N���X�K�w�����Ă݂悤�B��v�Ȃ��̂�Figure 1�Ɏ����B

Figure 1: WPF�̎�v��UI�v�f

�@�O�����������Ƃ���AFrameworkElement�N���X�iSystem.Windows���O��ԁj��WPF�̂قƂ�ǂ�UI�v�f�̋��ʊ��ƂȂ��b�I�ȃN���X�ŁAPanel�N���X�iSystem.Windows.Controls���O��ԁj�͎q�v�f�Ƌ������ă��C�A�E�g�����肷�邽�߂̃p�l���̊��N���X�ł���B

�@����A���񏉏o�ƂȂ�Decorator�N���X�iSystem.Windows.Controls���O��ԁj�́A�q�v�f�₻�̎��ӂɉ��炩�̑������{�����߂̃N���X�ŁA�Ⴆ�΁AUI�v�f�̉���g���ň͂�����A�r�����b�g�i���������p�̒��_�j��t�����肷�邽�߂ɗp����B

�@�����āAControl�N���X�iSystem.Windows.Controls���O��ԁj���A����̎��ł���R���g���[���̊��N���X�ƂȂ�B

�@����ł͂܂��AControl�N���X���͂��߁A���܂��܂ȃR���g���[���̊��N���X�ƂȂ邢���‚��̎�v�ȃN���X�i��Figure 1�ŁA�F�̘g���ň͂��Ă�����́j�ɂ‚��Đ������Ă������B

����v�Ȋ��N���X

��Control�N���X

�@Control�N���X�͂��ׂẴR���g���[���̊��ƂȂ�N���X�ŁATable 1�Ɏ����悤�ȃ����o�������Ă���B

�@�\ �����o
�O�ϐݒ� Background
BorderBrush
BorderThickness
Foreground
�t�H���g FontFamily
FontSize
FontStretch
FontStyle
FontWeight
���e���̃��C�A�E�g���� HorizontalContentAlignment
VerticalContentAlignment
Padding
�t�H�[�J�X�Ǘ� IsTabStop
TabIndex
�R���g���[���E�e���v���[�g Template
�}�E�X�E�C�x���g MouseDoubleClick
PreviewMouseDoubleClick
Table 1: Control�N���X�̋@�\
���}�E�X�E�C�x���g�̊e�����o�̓��[�e�B���O�E�C�x���g�ł���B����ȊO�͂��ׂăv���p�e�B�B

�@�ȉ��A���_���⑫���������Ă������B

���O�ϐݒ�

�@Background�v���p�e�B�AForeground�v���p�e�B�A����сABorderBrush�v���p�e�B�́A���ꂼ��w�i��O�i�A�g���̓h��‚Ԃ����s�����߂̃u���V�ƂȂ��Ă���B���F�ł̓h��‚Ԃ������łȂ��A�ȉ��̂悤�ȃu���V�𗘗p���邱�ƂŁA�O���f�[�V������摜���g�����h��‚Ԃ����”\�ł���B

  • SolidColorBrush�F ���F�œh��‚Ԃ��B
  • LinearGradientBrush�F ���`�O���f�[�V�����œh��‚Ԃ��B
  • RadialGradientBrush�F ���ˏ�O���f�[�V�����œh��‚Ԃ��B
  • ImageBrush�F �摜���g���ēh��‚Ԃ��B
  • DrawingBrush�F Drawing�N���X�i��2D�`��j���g���ēh��‚Ԃ��B
  • VisualBrush�F Visual�N���X�i��WPF��UI�v�f�̋��ʊ��N���X�j���g���ēh��‚Ԃ��B

�@�Ⴆ�΁ADrawingBrush�ɑ΂���<VideoDrawing>�v�f��^������AVisualBrush�ɑ΂���<MediaElement>�v�f��^�����肷�邱�ƂŁA�R���g���[���̔w�i�ɓ����\�����邱�Ƃ��”\�ł���B

�@SolidColorBrush�̏ꍇ�ɂ́ARGB�l��F������̕ϊ�����`����Ă��āAXAML�̑����\�����g���Ĉȉ��̂悤�ȐF�w�肪�”\�ł���B

<!-- # 6�P�^��16�i���� RGB �w��B -->
<TextBox Background="#0000ff" />

<!-- �F������̕ϊ��������B
     Colors �N���X�̐ÓI�����o�[�Ƃ��Ē�`����Ă���B -->
<TextBox Background="Blue" />

<!-- SystemColors �N���X�̐ÓI�����o�[���Q�Ƃ��邱�ƂŁA
     �V�X�e���F�𗘗p�”\�B -->
<TextBox Background="{x:Static SystemColors.ActiveCaptionBrush}" />

XAML�̑����\�����g����SolidColorBrush�̐F�w��̃R�[�h��iXAML�j

�@�ǂ̂悤�ȐF����V�X�e���F�����p�ł��邩�́AMSDN�́uColors�N���X�iSystem.Windows.Media���O��ԁj�v����сuSystemColors�N���X�iSystem.Windows���O��ԁj�v�̃y�[�W���Q�Ƃ��Ăق����B

�@�܂��ALinearGradientBrush�ARadialGradientBrush�A����сAImageBrush�́AVisual Studio��Expression Blend���g���ău���V�̐ݒ肪�”\�ł���BMovie 1�ɁAVisual Studio���g�����u���V�ݒ�̗�������B

Movie 1: Visual Studio���g�����w�i�u���V�̕ҏW

���t�H���g

�@�t�H���g�Ɋւ��ẮA�t�@�~���A�T�C�Y�A�X�^�C���i���W���^�����^�Ά^�ł��������t���^�����t���j�A���̑����A�L�k�ƁA��ʂ�ݒ�”\�ɂȂ��Ă���B���̂����A�t�H���g�E�t�@�~���ɂ‚��ĕ⑫���Ă������B

�@FontFamily�v���p�e�B�ɒP�Ƀt�H���g�����w�肵���ꍇ�A�V�X�e���ɃC���X�g�[�����ꂽ�t�H���g�����p�����B���R�A�w�肳�ꂽ�t�H���g���C���X�g�[������Ă��Ȃ��‹��ł́A���̃t�H���g���K�p����Ȃ��i����̃t�H���g���g�p�����j�B

<!-- �V�X�e���ɃC���X�g�[�����ꂽ�t�H���g���g���B -->
<!-- �t�H���g���C���X�g�[������Ă��Ȃ��‹��ł͓K�p����Ȃ��B -->
<TextBlock Text="�e�X�g ����" FontFamily="HGPGyoshotai" />

�t�H���g�E�t�@�~���w��̃R�[�h��iXAML�j

�@�V�X�e���Ƀt�H���g���C���X�g�[������Ă��Ȃ��ꍇ��z�肵�āA�t�H���g�E�t�@�~���̓J���}��؂�ŕ����w��”\�ł���B

�@�܂��A�ǂ�Ȋ‹��ł��Ӑ}�����Ƃ���̃t�H���g�ŕ\���ł���悤�ɁA�A�v���P�[�V�����Ƀt�H���g�𖄂ߍ��ނ��Ƃ��ł���B

�@�菇�Ƃ��ẮA�܂��A�t�H���g���A�Z���u���E���\�[�X�i��Visual Studio�́m�v���p�e�B�n�E�B���h�E�Łm�r���h �A�N�V�����n���uResource�v�ɂ������́j�Ƃ��ăA�v���P�[�V�����ɖ��ߍ��ށB�����āAXAML�R�[�h���ł́A�uFontFamily="./#font name"�v�Ƃ����悤�ɁA�u#�v�ɑ����ăt�H���g�����L�q����B

�@Figure 2�ɁA�t�H���g�̖��ߍ��݂̗�������B

Figure 2: �t�H���g�̖��ߍ��݂̗�
���Ȃ݂ɁA���̃T���v���Ŏw�肵�Ă���u���ʂ������}�W�b�N�v�͏��p���p�”\�ȃt���[�E�t�H���g�B

�@�������A�z�z�����R�ɔF�߂Ă���t�H���g�ł��A�A�v���P�[�V�����֖��ߍ���ł̔z�z�͔F�߂Ă��Ȃ��ꍇ������̂ŁA���C�Z���X�ɒ��ӂ��K�v�ł���B

��ContentControl�N���X

�@ContentControl�N���X�iSystem.Windows.Controls���O��ԁj�́A�{�^���Ȃǂ̂悤�ɁA�R���e���c��1�‚������ƒR���g���[���̊��N���X�ł���B�A�v���P�[�V�����{�̂ƂȂ邱�Ƃ̑���Window�N���X��ContentControl�N���X����h�����Ă���B

�@�R���e���c��\��Content�v���p�e�B��object�^�ɂȂ��Ă��āA���ł��i�[���邱�Ƃ��ł���B�i�[�����^�ɂ���āA�ȉ��̂悤�ɁA�قȂ�\�����s����B

  • UIElement�N���X�̏ꍇ�A���̂܂�UI�v�f�Ƃ��ĕ\�����s����iOnRender���\�b�h�ŕ`����s���j
  • ���̂ق��̃N���X�̏ꍇ�A�f�[�^�E�e���v���[�g���ݒ肳��Ă���΃e���v���[�g���g�����\�����s����i�A����5�����Q�Ɓj
  • �f�[�^�E�e���v���[�g���ݒ肳��Ă��Ȃ��ꍇ�AToString���\�b�h���g���ĕ����񉻂��ꂽ���ʂ��\�������

�@ContentControl�N���X�̔h���N���X�̒��ɕ�����UI�v�f����ׂ����ꍇ�A�܂�<Grid>�v�f�Ȃǂ̃p�l����u���āA���̒���UI�v�f����ׂ�B

�@�R���e���c�ւ̃e���v���[�g�K�p�́AContentTemplate�v���p�e�B�Ŗ����I�Ɏw�肷�邩�A��5���Ő��������悤��DataType�v���p�e�B���g���������K�p�ōs���B

��HeaderedContentControl�N���X

�@Figure 3�Ɏ����悤�ɁA<GroupBox>�v�f��<Expander>�v�f�ȂǁA�ꕔ�̃R���g���[���̓w�b�_���ƃR���e���c�������Ă���B���̂悤�ȃR���g���[���̊��ƂȂ�̂�HeaderedContentControl�N���X�iSystem.Windows.Controls���O��ԁj�ł���B

Figure 3: �w�b�_�ƃR���e���c�����ƒR���g���[���̗�

�@�w�b�_�����w�肷�邽�߂�Header�v���p�e�B��Content�v���p�e�B�Ɠ��l��object�^�ƂȂ��Ă��āA�f�[�^�E�e���v���[�g��ToString���\�b�h������\�����s����B�f�[�^�E�e���v���[�g�𖾎��I�Ɏw�肵�����ꍇ�ɂ�HeaderTemplate�v���p�e�B���g���Ďw�肷��B

��ItemsControl�N���X

�@ItemsControl�N���X�iSystem.Windows.Controls���O��ԁj�́A<ListBox>�v�f�Ȃǂ̂悤�ɕ����̍��ڂ����ƒR���g���[���̊��N���X�ł���BItemsControl�N���X�̓����\����Figure 4�Ɏ����悤�ɂȂ��Ă��āA�ȉ��̂悤�ɁA�J�X�^�}�C�Y�ł������3�‚���B

  • item�F <ItemsControl>�v�f���ɕ\�����������ځBItemsSource�v���p�e�B��ʂ��ė^����B<ContentControl>�v�f��Content�v���p�e�B�Ɠ��l�ɁA�f�[�^�E�e���v���[�g���K�p�”\�ŁA�����I�Ƀe���v���[�g��^�������ꍇ�ɂ�ItemTemplate�v���p�e�B��p����B
  • container�F ItemsSource�v���p�e�B�ŗ^�������ڂ͒��ڕ\�������킯�ł͂Ȃ��A1�i�K�R���e�i������ŕ\�������B�R���e�i�́AListBox�R���g���[���Ȃ�<ListBoxItem>�v�f�AComboBox�R���g���[���Ȃ�<ComboBoxItem>�v�f�Ƃ����悤�ɁAItemsControl�N���X�̔h���N���X���ƂɌ��܂��Ă���B�R���e�i���ۂ��ƍ����ւ��邱�Ƃ͂ł��Ȃ����AItemContainerStyle�v���p�e�B��p���邱�ƂŃX�^�C���̕ύX���”\�ł���B
  • item panel�F �����̍��ڂ̃��C�A�E�g�����肷�邽�߂̃p�l���BItemsPanel�v���p�e�B�Ŗ����I�Ɏw�肷�邱�ƂŁA���C�A�E�g���@��ς�����B
Figure 4: ItemsControl�N���X�̓����\��

�@List 1��ItemsControl�N���X�̃J�X�^�}�C�Y�̗���AFigure 5�ɂ��̕\�����ʂ������B

<Window x:Class="atmarkit08.ItemsControlSample"
 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="ItemsControl�T���v��" Height="150" Width="150">
  <Grid>

    <ItemsControl ItemsSource="{Binding}">

      <ItemsControl.ItemsPanel>
        <ItemsPanelTemplate>
          <CanvasItemsPanelTemplate>
      </ItemsControl.ItemsPanel>

      <ItemsControl.ItemContainerStyle>
        <Style>
          <Setter Property="Canvas.Left" Value="{Binding X}" />
          <Setter Property="Canvas.Top" Value="{Binding Y}" />
        </Style>
      </ItemsControl.ItemContainerStyle>

      <ItemsControl.ItemTemplate>
        <DataTemplate>
          <Button Content="{Binding Text}" />
        </DataTemplate>
      </ItemsControl.ItemTemplate>

    </ItemsControl>

  </Grid>
</Window>

this.DataContext = new[]
{
  new { Text = "a", X = 20, Y = 80 },
  new { Text = "b", X = 80, Y = 80 },
  new { Text = "c", X = 80, Y = 20 },
  new { Text = "d", X = 20, Y = 20 },
};

Me.DataContext =
{
  New With { .Text = "a", .X = 20, .Y = 80 },
  New With { .Text = "b", .X = 80, .Y = 80 },
  New With { .Text = "c", .X = 80, .Y = 20 },
  New With { .Text = "d", .X = 20, .Y = 20 }
}

List 1: ItemsControl�N���X�̃J�X�^�}�C�Y�̗�i��FXAML�A���FC#�A���FVB�j

Figure 5: List 1�̕\������

�@���̗�ł́AItemsPanel�v���p�e�B��<Canvas>�v�f���w�肷�邱�ƂŁA�Еz�}�̂悤�ȃ��C�A�E�g���s���Ă���BCanvas.Left�Y�t�v���p�e�B��<Canvas>�v�f�̒��ڂ̎q�v�f�Ɏw�肷��K�v�����邽�߁AItemTemplate�v���p�e�B�Ɏw�肷��f�[�^�E�e���v���[�g���ł͂Ȃ��AItemContainerStyle�v���p�e�B�Ɏw�肷��X�^�C�����Őݒ肵�Ȃ���΂Ȃ�Ȃ��B

���R���N�V�����E�r���[

�@ItemsSource�v���p�e�B�o�R��<ItemsControls>�v�f�ɓn���ꂽ�f�[�^�E�\�[�X�́AFigure 6�Ɏ����悤�ɁA���ۂɂ͊ԂɃR���N�V�����E�r���[�icollection view�j�Ƃ������̂����܂��������ŕ\�������B�R���N�V�����E�r���[�́A�f�[�^�E�\�[�X��ύX�����ɁA�r���[��ł����f�[�^�̐����O���[�v�����s�����߂̂��̂ł���B

Figure 6: �R���N�V�����E�r���[

�@�R���N�V�����E�r���[�Ƃ������t�́A���̂Ɂu�r���[�v�Ƃ������t�������Ă���̂���������킵�����A������u�r���[�ƃ��f���v�̃r���[�i�����ڂɊւ��镔���j�̂��Ƃł͂Ȃ��A�f�[�^�x�[�X�p��̃r���[�i���\���p�Ƀf�[�^�E�\�[�X�𐮌`�������́j�̈Ӗ������Ŏg���Ă���B

�@ItemsControl�N���X��ItemsSource�v���p�e�B�ɁA�R���N�V�����E�r���[��\��ICollectionView�C���^�[�t�F�C�X�iSystem.ComponentModel���O��ԁj�̃C���X�^���X��n���ƁA���ꂪ���̂܂ܕ\������邪�A�ق��̃R���N�V������^�����ꍇ�ɂ́A�����I�ɃR���N�V�����E�r���[���쐬����A���b�s���O�����B

�@ItemsControl�N���X�ɂ́AItemsSource�v���p�e�B�̂ق��ɁAItems�v���p�e�B�Ƃ������̂����邪�A������͂��̃R���N�V�����E�r���[�ɑ΂��Ē��ڗv�f�̒lj���ǂݏo�����s���ꍇ�ɗ��p����B

�@XAML�R�[�h���Ŗ����I�ɃR���N�V�����E�r���[����肽���ꍇ�A<CollectionViewSource>�v�f�iSystem.Windows.Data���O��ԁj�𗘗p����BList 2�ɃR���N�V�����E�r���[�̗��p����AMovie 2�ɂ��̎��s���ʂ������B

<Window x:Class="atmarkit08.CollectionViewSourceSample"
 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
 xmlns:cm="clr-namespace:System.ComponentModel;assembly=WindowsBase"
 xmlns:dat="clr-namespace:System.Windows.Data;assembly=PresentationFramework"
    Title="CollectionView�T���v��" Height="500" Width="500">

  <Window.Resources>

    <CollectionViewSource x:Key="Sorted" Source="{Binding}">
      <CollectionViewSource.SortDescriptions>
        <cm:SortDescription PropertyName="Category" />
      </CollectionViewSource.SortDescriptions>
    </CollectionViewSource>

    <CollectionViewSource x:Key="Grouped" Source="{Binding}">
      <CollectionViewSource.GroupDescriptions>
        <dat:PropertyGroupDescription PropertyName="Category" />
      </CollectionViewSource.GroupDescriptions>
    </CollectionViewSource>

  </Window.Resources>

  <Grid>

    <Grid.ColumnDefinitions>
      <ColumnDefinition Width="*" />
      <ColumnDefinition Width="*" />
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
      <RowDefinition Height="auto" />
      <RowDefinition Height="*" />
      <RowDefinition Height="auto" />
      <RowDefinition Height="*" />
    </Grid.RowDefinitions>

    <TextBlock Text="�����R���N�V�����E�r���[���Q��"
      Grid.ColumnSpan="2" HorizontalAlignment="Center" />
    <DataGrid
      ItemsSource="{Binding}" Grid.Row="1" Grid.Column="0" />
    <DataGrid
      ItemsSource="{Binding}" Grid.Row="1" Grid.Column="1" />
 
    <TextBlock Text="SortDescription �t��" Grid.Row="2" />
    <DataGrid
      ItemsSource="{Binding Source={StaticResource Sorted}}"
      Grid.Row="3" Grid.Column="0" />

    <TextBlock Text="GroupDescription �t��"
      Grid.Row="2" Grid.Column="1" />
    <DataGrid
      ItemsSource="{Binding Source={StaticResource Grouped}}"
      Grid.Row="3" Grid.Column="1">
      <DataGrid.GroupStyle>
        <GroupStyle />
      </DataGrid.GroupStyle>
    </DataGrid>

  </Grid>

</Window>

this.DataContext = new[]
{
  new { Name="Button", Category="�{�^��" },
  new { Name="CheckBox", Category="�I��" },
  new { Name="ComboBox", Category="�I��" },
  new { Name="TextBlock", Category="�����\��" },
  new { Name="RadioButton", Category="�I��" },
  new { Name="RichTextBlock", Category="�����\��" },
  new { Name="ScrollBar", Category="�\��" },
  new { Name="ToolTip", Category="�\��" },
};

Me.DataContext =
{
  New With { .Name="Button", .Category="�{�^��" },
  New With { .Name="CheckBox", .Category="�I��" },
  New With { .Name="ComboBox", .Category="�I��" },
  New With { .Name="TextBlock", .Category="�����\��" },
  New With { .Name="RadioButton", .Category="�I��" },
  New With { .Name="RichTextBlock", .Category="�����\��" },
  New With { .Name="ScrollBar", .Category="�\��" },
  New With { .Name="ToolTip", .Category="�\��" }
}

List 2: �R���N�V�����E�r���[�̗��p��i��FXAML�A���FC#�A���FVB�j

�������擾�ł��܂���ł���
Movie 2: List 2�̎��s����

�@���̗�ł́A2�s2���4�‚�<DataGrid>�v�f��\�����Ă���B���2�‚͓����f�[�^�E�\�[�X���Q�Ƃ��Ă��āi�����I�ɐ��������R���N�V�����E�r���[���������̂����L�����j�A�Е��ł̐���̌��ʂ������ɂ����f�����B����2�‚�<DataGrid>�v�f�ɂ́A���ꂼ�ꐮ�񂨂�уO���[�v�����ꂽ�R���N�V�����E�r���[��^���Ă���B

��HeaderedItemsControl�N���X

�@Figure 7�Ɏ����悤�ɁA<MenuItem>�v�f��<TreeViewItem>�v�f�ȂǁA�w�b�_���ƕ����̍��ڂ������Ă�����̂�����A���̂悤�ȃR���g���[����HeaderedItemsControl�N���X�iSystem.Windows.Controls���O��ԁj�����N���X�Ƃ��Ă���B

Figure 7: �w�b�_�ƕ����̍��ڂ����ƒR���g���[���̗�

�@���̃y�[�W�ł́AWPF�̃R���g���[����p�r���Ƃɕ��ނ���B

�@�@�@�@�@�@ 1|2 ���̃y�[�W��

Copyright© Digital Advantage Corp. All Rights Reserved.

'; this.insertTarget = document.querySelector('#cmsBody .subscription') || document.querySelector('#cmsBody .inner'); }; BodyAdIMSWithCCE.prototype = Object.create(BodyAdContent.prototype); BodyAdIMSWithCCE.prototype.activate = function () { refreshGam('InArtSpecialLink'); } // global reference window.itm = itm; //entry point BodyAdEventBase.polyfill(); const bodyAdManager = BodyAdManager.getInstance(); bodyAdManager.addEventListener(BodyAdManager.EVENTS.READY, function (ev) { bodyAdManager.loadAdvertise(); }); bodyAdManager.init(); })();
�X�|���T�[����̂��m�点PR

���ڂ̃e�[�}

Microsoft  WindowsőO2025
AI for GWjAO
[R[h^m[R[h Zg by IT - ITGWjArWlX̒SŊ􂷂gD
Cloud Native Central by IT - XP[uȔ\͂gD
�V�X�e���J���m�E�n�E �y�����i�r�zPR
���Ȃ��ɂ������߂̋L��PR

RSS�ɂ‚���

�A�C�e�B���f�B�AID�ɂ‚���

���[���}�K�W���o�^

��IT�̃��[���}�K�W���́A �������A���ׂĖ����ł��B���Ѓ��[���}�K�W�������w�ǂ��������B