Авторазмер элементов управления Silverlight - PullRequest
0 голосов
/ 20 мая 2011

Я использую Silverlight 4 для проекта.Я хочу знать, есть ли способ заставить основной холст растягиваться до высоты и ширины окна браузера, в котором оно размещено?

Я хочу, чтобы размеры элементов управления изменялись пропорционально основному элементу управления.в нем размещены все остальные элементы управления в окне браузера хоста.Это приложение Prism, которое содержит Shell.xaml и ContentControl внутри оболочки.В этом случае призмы я хочу, чтобы управление содержимым охватывало до 100% высоты и ширины экрана ... и когда внутри него загружается Page.xaml, я хочу, чтобы пользовательский контроль страницы заполнил весь контроль содержимого содержимого xaml.Аналогично, в Page.xaml, если у меня есть сетка, я хочу, чтобы сетка увеличивалась до размера, не превышающего фиксированное число пикселей

Кажется, что размер сетки в пользовательском элементе управления Page.xaml правильно изменяется.У меня возникают проблемы с получением пользователем root-доступа к элементу Page.xaml по всей ширине окна браузера.Есть ли способ сделать это, используя только свойства xaml?Я не хочу указывать высоту и ширину 800 и 1200, как я сделал ниже.

Это мой код

<UserControl x:Class="MyNamespace.MyClass"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="400" 
xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk"
Background="#FF2D8543" 
Height="800" Width="1200"
 >

<Grid x:Name="LayoutRoot" Background="#FFEB0A0A" 
VerticalAlignment="Center" HorizontalAlignment="Center"
Height="Auto" Width="Auto"
 >
</Grid>

Спасибо за ваше время.

1 Ответ

3 голосов
/ 20 мая 2011

Да, используйте Grid вместо Canvas в качестве элемента верхнего уровня. Grid занимает все доступное пространство по умолчанию.

Подробнее о макетной системе Silverlight здесь и здесь .

Обновление:

Просто удалите атрибуты Width и Height из UserControl:

Height="800" Width="1200"

Устанавливая их явно, вы даете элементу управления фиксированный размер. Если вы не укажете Width и Height, элемент управления займет все доступное пространство.

...