R.D*_*R.D 1 wpf user-controls wpf-positioning
我想将此 UserControl 放置在 Canvas.Left="168"、Canvas.Top="213" 处。
但是,控件出现在角落。我应该怎么办?
如果我将这些值放在此类的使用点,这些值将返回为 NaN 在这种情况下,我怎样才能获得正确的左值和上值?
用法:
<Canvas x:Name="DesignerCanvas"
ClipToBounds="True"
SnapsToDevicePixels="True">
<Gr:BareNode />
</Canvas>
Run Code Online (Sandbox Code Playgroud)
用户控制:
<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>
Run Code Online (Sandbox Code Playgroud)
我不确定您是否尝试过此操作,但仅从 XAML 来看,您似乎正在尝试在用户控件内设置用户控件的位置。那是行不通的。您需要将其放在使用用户控件的地方
<Canvas x:Name="DesignerCanvas"
ClipToBounds="True"
SnapsToDevicePixels="True">
<Gr:BareNode Canvas.Left="168" Canvas.Top="213"/>
</Canvas>
Run Code Online (Sandbox Code Playgroud)
从用户控件内部的 ContentControl 声明中取出 Canvas.Left="168" Canvas.Top="213" 部分。
| 归档时间: |
|
| 查看次数: |
6386 次 |
| 最近记录: |