1

この 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>
4

1 に答える 1

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" の部分を取り出します。

于 2008-12-14T02:35:03.603 に答える