Как создать UserControl с неправильной формой? - PullRequest
2 голосов
/ 30 марта 2011

В моем приложении Silverlight 4 мне нужно создать пользовательский элемент управления неправильной формы.«Основной дисплей» UC - это стандартный прямоугольник, но мне нужно иметь вкладки (простые текстовые блоки, где пользователь может щелкнуть), которые находятся за пределами основного прямоугольника дисплея.

Возможно ли это с Silverlight 4?Если да, то как?

Заранее спасибо.

Ответы [ 3 ]

1 голос
/ 30 марта 2011

Технически, вы можете иметь элементы вне прямоугольника UserControl, если вы используете Canvas для LayoutRoot вместо Grid.Элементы в Canvas не обрезаются до размера холста.Однако я бы не рекомендовал это делать, потому что вы не сможете использовать Margin для определения размера и выравнивания элементов управления внутри него.Было бы лучше иметь все дочерние элементы управления внутри Grid LayoutRoot.

, что приводит нас к вопросу о неправильности.Если вы хотите «видеть сквозь» части элемента управления и иметь возможность щелкать по ним (то есть щелкать объекты под ним), все, что вам нужно сделать, это сохранить UserControl и LayoutRoot 'Backgroundnull или просто не устанавливать его вообще.Везде, где нет никакого фона, клики будут проходить.Обратите внимание, что если вы установите фон Transparent, он будет вести себя как прямоугольник (как если бы он был залит сплошным цветом) по отношению к вводу мышью.

Другое дело, если вы хотите видеть HTMLэлементы управления под прозрачными частями вашего приложения.Затем вам придется использовать режим без окон, но это еще одна банка червей.

1 голос
/ 31 марта 2011

Вы можете расположить элементы элемента управления вне его обычного расположения несколькими способами.Вы можете использовать Canvas, но если большая часть элемента управления является стандартным прямоугольником сетки, то вы можете использовать сетку.Хитрость заключается в том, чтобы использовать отрицательные поля.

 <Grid x:Name="LayoutRoot">
     <Border Margin="0 -22 0 0">
         <TextBlock Text="I appear above the UserControl layout" />
     </Border>
 </Grid>

Обратите внимание, что если Usercontrol используется в качестве корня Visual, то это не будет работать, поскольку плагин Silverlight не будет отображаться за пределами своего клиентского прямоугольника.

1 голос
/ 30 марта 2011

Вы можете иметь прозрачный фон позади вкладок, который может пропускать щелчки, эффективно ведя себя так, как если бы форма была другой. UserControl по-прежнему будет иметь прямоугольную форму, включая вкладки, если только вы не переместитесь во всплывающее окно и не выйдете из UC с некоторым смещением.

...