Silverlight - отображение холста в пользовательском элементе управления - PullRequest
2 голосов
/ 18 ноября 2011

С учетом пользовательского элемента управления, имеющего холст внутри.

<Grid>
    <Border BorderBrush="Black" BorderThickness="3">
        <Canvas x:Name="CanvasDropArea" Background="#FFF7BDBD"/>
    </Border>
</Grid>

Есть ли способ выставить холст, чтобы позволить другим элементам управления добавляться в вышеупомянутый пользовательский элемент управления?

<CustomControlWithCanvas>
   <Canvas>
        <!--other user control-->
   <Canvas>
</CustomControlWithCanvas>

Я пытался выставить его как свойство, но это не удалось, так как его можно рассматривать как обычное свойство вместо Collection, которое позволяет добавлять UIElements. Тем не менее, я смог добавить элементы управления на элемент с помощью кода, получив холст и добавив его вручную.
Так какой же должен быть правильный способ выставления холста? чтобы разрешить его изменение во время разработки, а также сохранить холст TOP и левое свойство зависимости.

1 Ответ

0 голосов
/ 18 ноября 2011

Попробуйте - измените тип вашего элемента управления с UserControl на ContentControl, поместите его в свой Canvas и каким-то образом привяжите свойство ContentPresenter к свойству Content вашего элемента управления - возможно, назвав свой элемент управления и используя.

Более стандартным способом - вы бы реализовали его как шаблонный / пользовательский элемент управления вместо UserControl, поместили шаблон в ваш Themes / Generic.xaml вместо MyControl.xaml, задали DefaultStyleKey в своем конструкторе, задали TemplateParts и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...