我想将此UserControl放在Canvas.Left =“168”,Canvas.Top =“213”。
然而,控件出现在角落。我该怎么办?
如果我将值放在此类的使用点,则值将返回为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>
答案 0 :(得分:4)
我不确定你是否尝试过这种方法,但只是从查看XAML看来你正试图在用户控件中设置用户控件的位置。那不行。您需要将它放在使用用户控件的地方
<Canvas x:Name="DesignerCanvas"
ClipToBounds="True"
SnapsToDevicePixels="True">
<Gr:BareNode Canvas.Left="168" Canvas.Top="213"/>
</Canvas>
从用户控件内的ContentControl声明中取出Canvas.Left =“168”Canvas.Top =“213”部分。