我在调整 WPF 控件的大小时遇到了困难(这里我将以“Grid”控件为例),使其大小与窗口的“Client”区域的大小相同。我知道“Grid”默认情况下会自动填充所有可用空间,但我需要手动设置“Grid”的宽度,以便可以从另一个控件(DataGrid)绑定到它(如果 DataGrid 中的一列宽度设置为“Star”则有所不同)。
请参考以下 XAML:
以下是相关的 Code-Behind 代码:
运行这个简单的应用程序时,
根据最新的MSDN文档,
请参考以下 XAML:
<Window x:Class="TestApplication.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="768" Width="1024"
x:Name="mainWindow">
<ScrollViewer HorizontalScrollBarVisibility="Visible" VerticalScrollBarVisibility="Auto">
<Grid x:Name="testGrid" Background="DarkGray">
</Grid>
</ScrollViewer>
</Window>
以下是相关的 Code-Behind 代码:
using System.Windows;
namespace TestApplication
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
testGrid.Width = mainWindow.Width - (SystemParameters.BorderWidth * 2);
}
}
}
运行这个简单的应用程序时,
Grid
的宽度略大于Window
的客户区域,导致显示Horizontal Scroll Bar
。如果SystemParameters.BorderWidth
不能准确计算Window
边框的宽度,那么会发生什么?根据最新的MSDN文档,
SystemParameters.BorderWidth
:获取确定非最小化窗口的非客户区域边框宽度的度量标准。