Как разместить UserControl на родительском холсте - PullRequest
1 голос
/ 14 декабря 2008

Я хочу разместить этот UserControl на Canvas.Left = "168", Canvas.Top = "213".

Однако элемент управления отображается в углу. Что мне делать?

Если я помещу значения в точке использования для этого класса, значения возвращаются как NaN В таком случае, как я могу получить правильные значения Left и Top?

Использование:

<Canvas x:Name="DesignerCanvas"
        ClipToBounds="True"
        SnapsToDevicePixels="True">
<Gr:BareNode />
</Canvas>

UserControl:

<UserControl x:Class="DiagramDesigner.BareNode"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

<Grid>
    <ContentControl Width="50"
                  Height="50"
                  Padding="2"    
                  Canvas.Left="168" Canvas.Top="213">
        <Ellipse IsHitTestVisible="False" >
            <Shape.Fill>
                <RadialGradientBrush Center="0.2, 0.2" GradientOrigin="0.2, 0.2" RadiusX="0.8" RadiusY="0.8">
                    <GradientStop Color="LightBlue" Offset="0"/>
                    <GradientStop Color="Blue" Offset="0.9"/>
                </RadialGradientBrush>
            </Shape.Fill>
        </Ellipse>
    </ContentControl>
   </Grid>
</UserControl>

1 Ответ

4 голосов
/ 14 декабря 2008

Я не уверен, пытались ли вы это сделать или нет, но просто глядя на XAML, кажется, что вы пытаетесь установить положение пользовательского элемента управления внутри пользовательского элемента управления. Это не сработает. Вы должны положить его туда, где вы используете пользовательский элемент управления

<Canvas x:Name="DesignerCanvas"
    ClipToBounds="True"
    SnapsToDevicePixels="True">
   <Gr:BareNode Canvas.Left="168" Canvas.Top="213"/>
</Canvas>

Извлечение части Canvas.Left = "168" Canvas.Top = "213" из объявления ContentControl внутри пользовательского элемента управления.

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