В предыдущей статье все 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