防止在网格WPF C#中调整控件的大小

时间:2013-12-29 20:04:25

标签: c# wpf

(编辑)我在tabItem1中有一张图片。当我调整窗口大小(按角拖动或最大化按钮)时,图像也会调整大小并占据整个网格。我在图像上添加了宽度和高度,并且阻止默认为实际图像宽度&高度(以像素为单位)。

我是否必须应用宽度和高度来防止我不想在窗口尺度上调整大小的控制权?或是否有任何控制属性以防止调整大小。

基本上,我会有一些我不想留下的照片,并且会有一些我希望居住的文字。

XAML:

<Window x:Class="Engine.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Width="600" Height="600">
    <Grid>
        <TabControl Grid.RowSpan="2">
            <TabItem Header="TabItem1">
                <ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
                    <Grid x:Name="TGrid1" Background="#FFE5E5E5"/>
                </ScrollViewer>
            </TabItem>
            <TabItem Header="TabItem2">
                <ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
                    <Grid x:Name="TGrid2" Background="#FFE5E5E5">
                        <Grid.RowDefinitions>
                            <RowDefinition/>
                            <RowDefinition/>
                        </Grid.RowDefinitions>
                    </Grid>
                </ScrollViewer>
            </TabItem>
        </TabControl>
    </Grid>
</Window>

代码:

public MainWindow()
{
        InitializeComponent();

        var bitmapFrame = BitmapFrame.Create(new Uri(@"" + AppDomain.CurrentDomain.BaseDirectory + "Chrysanthemum.jpg"), BitmapCreateOptions.DelayCreation, BitmapCacheOption.None);
        var dragDropImage = new Image
        {
            Source = bitmapFrame, //new BitmapImage(new Uri(@"" + AppDomain.CurrentDomain.BaseDirectory + "Chrysanthemum.jpg")),
            Name = "dragDropImage",
            Width = bitmapFrame.PixelWidth,
            Height = bitmapFrame.PixelHeight
        };
        TGrid1.Children.Add(dragDropImage);

        var rect = new Rectangle
        {
            Stroke = new SolidColorBrush(Colors.Red),
            Fill = new SolidColorBrush(Colors.Black),
            Width = 474,
            Height = 405
        };
        Grid.SetRow(rect, 0);
        TGrid2.Children.Add(rect);
  }

1 个答案:

答案 0 :(得分:4)

如果您为组件VerticalAlignment和{{设置属性Top(例如HorizontalAlignment}和Left(例如image} 1}},这些控件将根据内容需要而不是容器中的可用空间来调整大小。

这就是你想要的吗?

编辑:对于您的图片,您应该设置其属性rectSee here

编辑2:

Stretch="None"