В предыдущей статье все View демонстрационного приложения представляли собой UserControl'ы.
<UserControl x:Class="ViewModelLocatorSample.EditTagView" ... Height="84" Width="243"> ... </UserControl>
Для того чтобы показать View пользователю нужно было создать окно, которому в Content поместить нужный View.
public void Show(string title, FrameworkElement content) { var window = new Window { Title = title, Content = content }; window.Show(); }
Не знаю как вы, но лично я не знал как подогнать размеры окна под размер UserControl'а. Если вообще не устанавливать окну никаких размеров, то получим нечто подобное.
Понятное дело, что указыать какие-то конкретные значения смысла нет, т.к. у каждой View свои размеры. Можно присваивать окну размеры UserControl'а.
var window = new Window { Title = title, Content = content, Width = content.Width, Height = content.Height };
Но как видите это тоже не самая лучшая идея, т.к часть контента оказалась обрезана окном.
Решение проблемы оказалось очень простым. У Window есть свойство SizeToContent, которое (ну кто бы мог подумать) позволяет подгонять под размер контента только высоту, только ширину или сразу оба размера.
var window = new Window { Title = title, Content = content, SizeToContent = SizeToContent.WidthAndHeight };
No comments:
Post a Comment