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.5.2, 4.5.1, 4.5, 4, 3.5, 3.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Was this page helpful?
(1500 characters remaining)
Thank you for your feedback
Show:
© 2014 Microsoft