2008-12-14 31 views
1

我想將此UserControl放置在Canvas.Left =「168」,Canvas.Top =「213」。如何將UserControl放在父畫布中

但是,控件顯示在一個角落。我該怎麼辦?

如果我把這個值放在這個類的使用點上,那麼這個值返回爲NaN 在這種情況下,我怎樣才能得到正確的左值和最值?

用法:

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

用戶控件:

<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> 

回答

4

我不知道,如果你嘗試過這種與否,但只是從看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中聲明的。

+0

但我也希望第二種方案的工作。 – 2008-12-14 03:02:39