c# - 如何只允许 WPF 窗口的高度可调整?

标签 c# wpf

具体来说,我有一个 Window,其 Content 被设置为 UserControl。我想允许用户拖动以增加 Window 的高度,但 Width 应该是固定的且不可调整大小。我想我有这样的属性需要修改,但我不能让它们按照我想要的方式运行:

  • Window.SizeToContent,可选值:Manual, Width, Height,

  • WidthAndHeight Window.ResizeMode,可用值:CanMinimize,
    CanResize, CanResizeWithGrip , NoResize

  • 当然还有 UserControl
  • 的最小/最大高度和宽度

但是什么样的组合才能达到我想要的呢?

最佳答案

一种方法是将窗口的 MinWidthMaxWidth 设置为相同的值:

<Window x:Class="WpfApplication20.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" MinWidth="525" MaxWidth="525">
    <Grid>

    </Grid>
</Window>

编辑:如果您想在代码隐藏中执行此操作,正如您在评论中所写,您可以按如下方式执行:

<Window x:Class="WpfApplication20.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350">
    <Rectangle x:Name="childElement"  Width="525" Fill="Red">

    </Rectangle>
</Window>

在窗口的构造函数中,你会写:

public MainWindow()
{
    InitializeComponent();

    Binding binding = new Binding("ActualWidth") { Source = childElement };
    BindingOperations.SetBinding(this, MinWidthProperty, binding);
    BindingOperations.SetBinding(this, MaxWidthProperty, binding);

}

请注意:上面的 childElement 将是您的 UserControl。

关于c# - 如何只允许 WPF 窗口的高度可调整?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24452391/

相关文章:

wpf - 尝试更好地理解 SelectedValuePath 和 IsSynchronizedWithCurrentItem

wpf - 如何在 WPF 4 应用程序中托管 Silverlight 4 应用程序?

c# - 禁止 dapper.rainbow 在插入时使用 ID

c# - 比较 2 个列表后获取缺失值

c# - 当客户端甚至无法连接到 WCF 服务器时,为什么会出现 "server stack trace"异常?

c# - 我对类、对象和实例有点困惑

c# - 是否可以仅在加载所有模块后才显示 shell?

WPF TreeView : hide expand sign for all the leaf nodes

c# - 使用数据库中的复选框填充 StackPanel

c# - 如何检测正在运行 ASP.NET 程序的监视器?