Как отключить изменение размера пользовательского элемента управления в WPF
У меня есть Usercontrol. Я хочу отключить его изменение размера. Пользовательский контроль:
<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. Любое предположение?
2 ответа
У тебя есть Width
а также Height
установлен в Auto
Я думаю, вы должны были позволить элементу управления занимать столько места, сколько нужно, но не больше.
Также, UserControl
не изменяет размеры самостоятельно, но зависит от макета, частью которого он является.
Итак, самый быстрый способ исправить вашу проблему - это установить HorizontalAlignment="Left"
а также VerticalAlignment="Top"
, Но вы должны рассмотреть весь макет вашего приложения и то, как UC влияет / влияет на другие компоненты интерфейса.
Тогда свойство Parent вашего UserControl содержит экземпляр Window. В большинстве случаев это будет NavigationWindow. Попробуйте приведенный ниже код в загруженном событии вашего UserControl, и он будет работать.
((NavigationWindow)this.Parent).ResizeMode = ResizeMode.NoResize