Windows Dev Center

Information
The topic you requested is included in another documentation set. For convenience, it's displayed below. Choose Switch to see the topic in its original location.

VisualBrush.AutoLayoutContent Property

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

Namespace:  System.Windows.Media
Assembly:  PresentationCore (in PresentationCore.dll)
XMLNS for XAML: http://schemas.microsoft.com/winfx/2006/xaml/presentation, http://schemas.microsoft.com/netfx/2007/xaml/presentation

public bool AutoLayoutContent { get; set; }
<object AutoLayoutContent="bool" .../>

Property Value

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

Identifier field

AutoLayoutContentProperty

Metadata properties set to true

None

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

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

Supported in: 4.6, 4.5, 4, 3.5, 3.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1
Show:
© 2015 Microsoft