Установите форму MinWidth и MinHeight на основе дочернего свойства
Я пишу приложение в WPF, используя шаблон MVVM. В моем приложении у меня естьIPopupWindowService
который я использую для создания всплывающего диалогового окна.
Таким образом, чтобы показать ViewModel во всплывающем окне, вы должны сделать что-то вроде этого:
var container = ServiceLocator.Current.GetInstance<IUnityContainer>();
var popupService = container.Resolve<IPopupWindowService>();
var myViewModel = container.Resolve<IMyViewModel>();
popupService.Show((ViewModelBase)myViewModel);
Это все хорошо. То, что я хочу сделать, это иметь возможность установитьMinHeight
а такжеMinWidth
наView
связан сmyViewModel
и заставьте всплывающее окно использовать эти настройки, чтобы пользователь не мог сделать окно меньше, чем позволяет его содержимое. В тот момент, когда пользователь сжимает окно, его содержимое перестает меняться, а окно - нет.
РЕДАКТИРОВАТЬ:
Я сопоставляю свои виды с моими моделями представления в ResourceDictionarys следующим образом:
<DataTemplate DataType="{x:Type ViewModels:MyViewModel}">
<Views:MyView />
</DataTemplate>
И мое всплывающее окно выглядит так:
<Window x:Class="TheCompany.Cubit.Shell.Views.PopupWindowView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
SizeToContent="WidthAndHeight"
WindowStartupLocation="CenterOwner">
<DockPanel x:Name="panelContent">
<StackPanel HorizontalAlignment="Right" DockPanel.Dock="Bottom" Orientation="Horizontal" Visibility="{Binding RelativeSource={RelativeSource AncestorType=Window},Path=ButtonPanelVisibility}">
<Button Width="75" IsDefault="True" x:Uid="ViewDialog_AcceptButton" Click="OnAcceptButtonClick" Margin="4">OK</Button>
<Button Width="75" IsCancel="True" x:Uid="ViewDialog_CancelButton" Click="OnCancelButtonClick" Margin="0,4,4,4">Cancel</Button>
</StackPanel>
<ContentPresenter Content="{Binding}" />
</DockPanel>