Я пишу приложение в 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
, и заставить всплывающее окно использовать эти настройки, чтобы пользователь не мог сделать окно меньше, чем позволяет его содержимое.,В тот момент, когда пользователь сжимает окно, его содержимое перестает меняться, но окно не изменяется.
РЕДАКТИРОВАТЬ:
Я сопоставляю свои виды с моими ViewModels в 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>