Поделиться через


Практическое руководство. Создание элемента BulletDecorator

Обновлен: Ноябрь 2007

В этом примере демонстрируется выравнивание элемента Bullet элемента управления BulletDecorator с различными типами объектов Child. В примере также содержатся различные типы объектов Bullet.

Пример

В следующем примере показан порядок определения элемента управления BulletDecorator, который использует изображение в качестве маркера Bullet и текстовый объект в качестве дочернего элемента Child. Если текстовый объект содержит несколько строк текста, как в этом примере, объект Bullet выравнивается с первой строкой текста.

Dim myBulletDecorator = New BulletDecorator()
Dim myImage = New Image()
Dim myBitmapImage = New BitmapImage()
myBitmapImage.BeginInit()
myBitmapImage.UriSource = _
   New Uri("pack://application:,,/images/apple.jpg")
myBitmapImage.EndInit()
myImage.Source = myBitmapImage
myImage.Width = 10
myBulletDecorator.Bullet = myImage
myBulletDecorator.Margin = New Thickness(0, 10, 0, 0)
myBulletDecorator.VerticalAlignment = VerticalAlignment.Center
myBulletDecorator.Background = Brushes.Yellow
Dim myTextBlock = New TextBlock()
myTextBlock.Text = "This BulletDecorator created by using code"
myTextBlock.TextWrapping = TextWrapping.Wrap
myTextBlock.HorizontalAlignment = HorizontalAlignment.Left
myTextBlock.Width = 100
myTextBlock.Foreground = Brushes.Purple
myBulletDecorator.Child = myTextBlock
BulletDecorator myBulletDecorator = new BulletDecorator();
Image myImage = new Image();
BitmapImage myBitmapImage = new BitmapImage();
myBitmapImage.BeginInit();
myBitmapImage.UriSource = new Uri(@"pack://application:,,/images/apple.jpg");
myBitmapImage.EndInit();
myImage.Source = myBitmapImage;
myImage.Width = 10;
myBulletDecorator.Bullet = myImage;
myBulletDecorator.Margin = new Thickness(0, 10, 0, 0);
myBulletDecorator.VerticalAlignment = VerticalAlignment.Center;
myBulletDecorator.Background = Brushes.Yellow;
TextBlock myTextBlock = new TextBlock();
myTextBlock.Text = "This BulletDecorator created by using code";
myTextBlock.TextWrapping = TextWrapping.Wrap;
myTextBlock.HorizontalAlignment = HorizontalAlignment.Left;
myTextBlock.Width = 100;
myTextBlock.Foreground = Brushes.Purple;
myBulletDecorator.Child = myTextBlock;
<BulletDecorator  Grid.Row="1" Grid.Column="0" Margin="0,5,0,0"
                  VerticalAlignment="Center" Background="Yellow">
  <BulletDecorator.Bullet>
    <Image Source="images\apple.jpg"/>
  </BulletDecorator.Bullet>
  <TextBlock
    Width="100" 
    TextWrapping="Wrap" 
    HorizontalAlignment="Left"
    Foreground ="Purple">
    A Simple BulletDecorator
  </TextBlock>
</BulletDecorator>

В следующем примере показано определение элемента управления BulletDecorator, который использует изображение в качестве маркера Bullet и текстовый объект, который имеет указанный размер шрифта, в качестве дочернего элемента Child. Поскольку маркер Bullet меньше, чем буквы, заданные размером шрифта, центр объекта Bullet размещается рядом с текстом.

<BulletDecorator Margin="0,5,0,10" Grid.Column="0" Grid.Row="2"
  VerticalAlignment="Center">
  <BulletDecorator.Bullet>
    <Image Source="images\apple.jpg"/>
  </BulletDecorator.Bullet>
  <TextBlock Name="FontSizeExample"
    FontSize="12" Foreground="Green">FontSize = 12 </TextBlock>
</BulletDecorator>

В следующем примере показано определение элемента управления BulletDecorator, который использует изображение в качестве маркера Bullet и нетекстовый элемент в качестве дочернего элемента Child. В этом примере центр объекта Bullet размещается рядом с нетекстовым элементом.

<BulletDecorator Grid.Row="3" Grid.Column="0" Margin="0,5,0,0">
  <BulletDecorator.Bullet>
    <Image Source="images\apple.jpg"/>
  </BulletDecorator.Bullet>
  <Ellipse Height="75" Width="50" Fill="Purple" 
           HorizontalAlignment="Left" ></Ellipse>
</BulletDecorator>

В следующем примере показаны три вида параметров Bullet для элемента управления BulletDecorator.

<BulletDecorator Margin="0,5,0,0">
  <BulletDecorator.Bullet>
    <CheckBox/>
  </BulletDecorator.Bullet>
  <TextBlock
    Width="100" 
    TextWrapping="Wrap" 
    HorizontalAlignment="Left"
    Foreground = "Blue" 
    Margin="5,0,0,0">
    A BulletDecorator with a CheckBox Bullet.
  </TextBlock>
</BulletDecorator>
  <BulletDecorator Margin="0,5,0,0">
    <BulletDecorator.Bullet>
      <TextBox Width="30"/>
    </BulletDecorator.Bullet>
    <TextBlock
      Width="100" 
      TextWrapping="Wrap" 
      HorizontalAlignment="Left"
      Foreground ="Blue" 
      Margin="5,0,0,0">
      A BulletDecorator with a TextBox Bullet.
    </TextBlock>
  </BulletDecorator>
  <BulletDecorator Margin="0,5,0,0">
  <BulletDecorator.Bullet>
    <RadioButton/>
  </BulletDecorator.Bullet>
    <TextBlock
      Width="100" 
      TextWrapping="Wrap" 
      HorizontalAlignment="Left"
      Foreground ="Blue"
      Margin="5,0,0,0">
      A BulletDecorator with a RadioButton Bullet
    </TextBlock>
  </BulletDecorator>

См. также

Ссылки

BulletDecorator