VisualBrush.AutoLayoutContent Property

 
System_CAPS_noteNote

The .NET API Reference documentation has a new home. Visit the .NET API Browser on docs.microsoft.com to see the new experience.

Gets or sets a value that specifies whether this VisualBrush will run layout its Visual.

Namespace:   System.Windows.Media
Assembly:  PresentationCore (in PresentationCore.dll)

public bool AutoLayoutContent { get; set; }

Property Value

Type: System.Boolean

true if this Brush should run layout on its Visual; otherwise, false. The default is true.

Setting this property to true has an effect only when this brush's Visual is a non-parented UIElement.

Identifier field

AutoLayoutContentProperty

Metadata properties set to true

None

The following example shows the effects of the AutoLayoutContent property on a non-parented UIElement.

StackPanel myStackPanel = new StackPanel();
myStackPanel.Margin = new Thickness(20, 0, 0, 0);
TextBlock myTextBlock = new TextBlock();
myTextBlock.Margin = new Thickness(0, 10, 0, 0);
myTextBlock.Text = "AutoLayoutContent: True";
myStackPanel.Children.Add(myTextBlock);

Rectangle myRectangle = new Rectangle();
myRectangle.Width = 100;
myRectangle.Height = 100;
myRectangle.Stroke = Brushes.Black;
myRectangle.StrokeThickness = 1;

// Create the Fill for the rectangle using a VisualBrush.
VisualBrush myVisualBrush = new VisualBrush();
myVisualBrush.AutoLayoutContent = true;

// This button is used as the visual for the VisualBrush.
Button myButton = new Button();
myButton.Content = "Hello, World";

myVisualBrush.Visual = myButton;

// Set the fill of the Rectangle to the Visual Brush.
myRectangle.Fill = myVisualBrush;

myStackPanel.Children.Add(myRectangle);

TextBlock myTextBlock2 = new TextBlock();
myTextBlock2.Margin = new Thickness(0, 10, 0, 0);
myTextBlock2.Text = "AutoLayoutContent: False";
myStackPanel.Children.Add(myTextBlock2);

Rectangle myRectangle2 = new Rectangle();
myRectangle2.Width = 100;
myRectangle2.Height = 100;
myRectangle2.Stroke = Brushes.Black;
myRectangle2.StrokeThickness = 1;

// Create the Fill for the rectangle using a VisualBrush.
VisualBrush myVisualBrush2 = new VisualBrush();
myVisualBrush2.AutoLayoutContent = false;

// This button is used as the visual for the VisualBrush.
Button myButton2 = new Button();
myButton2.Content = "Hello, World";
myButton2.Width = 100;
myButton2.Height = 100;

myVisualBrush2.Visual = myButton2;

// Set the fill of the Rectangle to the Visual Brush.
myRectangle2.Fill = myVisualBrush2;

myStackPanel.Children.Add(myRectangle2);
<StackPanel  Margin="20,0,0,0">
  <TextBlock Margin="0,10,0,0">AutoLayoutContent: True</TextBlock>
  <Rectangle 
    Width="100" 
    Height="100"
    Stroke="Black"
    StrokeThickness="1">
    <Rectangle.Fill>
      <VisualBrush AutoLayoutContent="True">
        <VisualBrush.Visual>
          <Button Content="Hello, World" />
        </VisualBrush.Visual>
      </VisualBrush>
    </Rectangle.Fill>
  </Rectangle>

  <TextBlock Margin="0,10,0,0">AutoLayoutContent: False</TextBlock>
  <Rectangle 
    Width="100" 
    Height="100"
    Stroke="Black"
    StrokeThickness="1">
    <Rectangle.Fill>
      <VisualBrush AutoLayoutContent="False">
        <VisualBrush.Visual>
          <Button Content="Hello, World" Width="100" Height="100" />
        </VisualBrush.Visual>
      </VisualBrush>
    </Rectangle.Fill>
  </Rectangle>
</StackPanel>

The following illustration shows the example's output:

AutoLayoutContent with a non-parented UIElement

The next example shows the effects of the AutoLayoutContent property on a parented UIElement.

// Create a name scope for the page.
NameScope.SetNameScope(this, new NameScope());

StackPanel myStackPanel = new StackPanel();
myStackPanel.Margin = new Thickness(20, 0, 0, 0);
TextBlock myTextBlock = new TextBlock();
myTextBlock.Margin = new Thickness(0, 10, 0, 0);
myTextBlock.Text = "The UIElement";
myStackPanel.Children.Add(myTextBlock);

Button myButton = new Button();
myButton.Content = "Hello, World";
myButton.Width = 70;
this.RegisterName("MyButton", myButton);
myStackPanel.Children.Add(myButton);

TextBlock myTextBlock2 = new TextBlock();
myTextBlock2.Margin = new Thickness(0, 10, 0, 0);
myTextBlock2.Text = "AutoLayoutContent: True";
myStackPanel.Children.Add(myTextBlock2);

Rectangle myRectangle = new Rectangle();
myRectangle.Width = 100;
myRectangle.Height = 100;
myRectangle.Stroke = Brushes.Black;
myRectangle.StrokeThickness = 1;

// Create the Fill for the rectangle using a VisualBrush.
VisualBrush myVisualBrush = new VisualBrush();
myVisualBrush.AutoLayoutContent = true;
Binding buttonBinding = new Binding();
buttonBinding.ElementName = "MyButton";
BindingOperations.SetBinding(myVisualBrush, VisualBrush.VisualProperty, buttonBinding);

// Set the fill of the Rectangle to the Visual Brush.
myRectangle.Fill = myVisualBrush;

// Add the first rectangle.
myStackPanel.Children.Add(myRectangle);

TextBlock myTextBlock3 = new TextBlock();
myTextBlock3.Margin = new Thickness(0, 10, 0, 0);
myTextBlock3.Text = "AutoLayoutContent: False";
myStackPanel.Children.Add(myTextBlock3);

Rectangle myRectangle2 = new Rectangle();
myRectangle2.Width = 100;
myRectangle2.Height = 100;
myRectangle2.Stroke = Brushes.Black;
myRectangle2.StrokeThickness = 1;

// Create the Fill for the rectangle using a VisualBrush.
VisualBrush myVisualBrush2 = new VisualBrush();
myVisualBrush2.AutoLayoutContent = false;
Binding buttonBinding2 = new Binding();
buttonBinding2.ElementName = "MyButton";
BindingOperations.SetBinding(myVisualBrush2, VisualBrush.VisualProperty, buttonBinding2);

// Set the fill of the Rectangle to the Visual Brush.
myRectangle2.Fill = myVisualBrush2;

myStackPanel.Children.Add(myRectangle2);

<StackPanel Margin="20,0,0,0">

  <TextBlock Margin="0,10,0,0">The UIElement</TextBlock>
  <Button Name="MyButton" Content="Hello, World" />

  <TextBlock Margin="0,10,0,0">AutoLayoutContent: True</TextBlock>
  <Rectangle 
        Width="100" 
        Height="100"
        Stroke="Black"
        StrokeThickness="1">
    <Rectangle.Fill>
      <VisualBrush Visual="{Binding ElementName='MyButton'}" />
    </Rectangle.Fill>
  </Rectangle>

  <TextBlock Margin="0,10,0,0">AutoLayoutContent: False</TextBlock>
  <Rectangle 
    Width="100" 
    Height="100"
    Stroke="Black"
    StrokeThickness="1">
    <Rectangle.Fill>
      <VisualBrush Visual="{Binding ElementName='MyButton'}" 
                   AutoLayoutContent="False"/>
    </Rectangle.Fill>
  </Rectangle>
</StackPanel>

The following illustration shows the example's output:

AutoLayoutContent with a parented UIElement

.NET Framework
Available since 3.0
Return to top
Show: