我应该在哪里更改 c# WPF 中的 window 大小?
Where should I change the window size in c# WPF?
我有一个 WPF window。
它的 xaml 文件由 UserControl 标签构建:
<UserControl x:Class="DeploymentTool.View.ToolPanelMappingView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
...
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="1300"
>
显然,我将宽度大小更改为什么并不重要(在我的例子中是 1300),
它不会改变 window 大小。
如何更改 window 的宽度?
如果我没理解错的话,你的xaml大概是这样的:
<Window x:Class="WpfApplication1.SomeWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="SomeWindow" Height="700" Width="1300">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="2*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<UserControl
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="30" Background="Green" Grid.Column="1" Grid.Row="1"></UserControl>
</Grid>
因此,要更改 UserControl 的宽度和高度,您可以通过在 'Grid' 中添加行或列来实现。
您的控件似乎托管在另一个 window 中。
找到主机 window 并根据需要进行更改。
也许你可以试试 Snoop 找到父 windwo 并使用它的属性来获得你想要的布局。
Snoop on CodePlex
我有一个 WPF window。 它的 xaml 文件由 UserControl 标签构建:
<UserControl x:Class="DeploymentTool.View.ToolPanelMappingView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
...
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="1300"
>
显然,我将宽度大小更改为什么并不重要(在我的例子中是 1300), 它不会改变 window 大小。
如何更改 window 的宽度?
如果我没理解错的话,你的xaml大概是这样的:
<Window x:Class="WpfApplication1.SomeWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="SomeWindow" Height="700" Width="1300">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="2*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<UserControl
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="30" Background="Green" Grid.Column="1" Grid.Row="1"></UserControl>
</Grid>
因此,要更改 UserControl 的宽度和高度,您可以通过在 'Grid' 中添加行或列来实现。
您的控件似乎托管在另一个 window 中。 找到主机 window 并根据需要进行更改。
也许你可以试试 Snoop 找到父 windwo 并使用它的属性来获得你想要的布局。 Snoop on CodePlex