如何在WPF中禁用用户控件的调整大小功能

3

我有一个用户控件,我想禁用它的大小调整功能。该用户控件如下:

<UserControl x:Class="DocumentUpload"
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      xmlns:telerikGrid="clr-namespace:Telerik.Windows.Controls;assembly=Telerik.Windows.Controls.GridView" 
      xmlns:telerikGrid1="clr-namespace:Telerik.Windows.Controls.GridView;assembly=Telerik.Windows.Controls.GridView" 
      xmlns:telerikInp="clr-namespace:Telerik.Windows.Controls;assembly=Telerik.Windows.Controls.Input" 
      xmlns:telerikNav="clr-namespace:Telerik.Windows.Controls;assembly=Telerik.Windows.Controls.Navigation" 
      xmlns:telerikData="clr-namespace:Telerik.Windows.Data;assembly=Telerik.Windows.Data" 
      xmlns:telerik="clr-namespace:Telerik.Windows.Controls;assembly=Telerik.Windows.Controls" mc:Ignorable="d" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
       Height="auto" Width="auto" MaxWidth="520">

我了解到有一个属性叫做

ResizeMode="NoResize"

但是它在UserControl中不可用。有什么建议吗?


把包含用户控件的窗口的属性设置为 ResizeMode="NoResize",或将高度和宽度设置为固定值而不是自动调整大小,您怎么看?“重新调整大小用户控件”指的是什么意思?用户控件默认情况下是不可调整大小的,不是吗? - har07
不,它被用作弹出消息。它会显示,其他所有内容都会变灰。 - UserK
你是如何展示弹出消息的?是通过创建一个窗口来承载你的用户控件吗?就像这里所展示的一样(https://dev59.com/vnM_5IYBdhLWcg3wt1g0#1262128)?如果是,你可以按照我上面所说的设置窗口属性。否则,你需要告诉我们你是如何展示弹出消息的,因为我不知道你的具体做法。 - har07
2个回答

3
您将 宽度高度 设置为 自动,我猜您想让控件尽可能占用所需的空间但不超过其需要的空间。

此外,UserControl 不会自行调整大小,而是取决于其所在的布局。

因此,最快解决您的问题的方法是设置 HorizontalAlignment="Left"VerticalAlignment="Top"。但您应该考虑整个应用程序的布局以及 UC 如何影响其他 UI 组件。


是的,它出现在左上角。但当用户拖动出现在用户控件边框上的调整大小箭头时,用户可以调整此用户控件的大小。我希望用户无法调整其大小。 - UserK
你设置了水平/垂直对齐吗?此外,用户控件不包括调整大小箭头,你是如何使用/消耗这个用户控件的? - XAMeLi
这个用户控件显示在 RAD 窗口内。让我在那里设置属性。谢谢,我得到了我的答案。 - UserK

1

你的UserControl的Parent属性持有Window实例。大多数情况下,它将是NavigationWindow。在你的UserControl的loaded事件中尝试下面的代码,它会正常工作。

((NavigationWindow)this.Parent).ResizeMode = ResizeMode.NoResize

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接