سؤال

في قماش لدي القطع الناقص استدارة من قبل RotateTransform من خلال الرسوم المتحركة. وأود أن أضيف خط مع نهاية واحدة تعلق على نقطة على القطع الناقص. يمكنني بطريقة أو بأخرى ربط نقطة على القطع الناقص؟

هل كانت مفيدة؟

المحلول

ويمكنك تحريك كل من البيضوي والخط معا، كما يلي:

<Canvas xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <Canvas.Resources>
        <PathGeometry x:Key="lineEndPath">
            <PathFigure StartPoint="25,50">
                <ArcSegment IsLargeArc="True" Point="100,50" Size="25,25" SweepDirection="Clockwise"/>
                <ArcSegment IsLargeArc="True" Point="25,50" Size="25,25" SweepDirection="Clockwise"/>
            </PathFigure>
        </PathGeometry>
    </Canvas.Resources>
    <Canvas.Triggers>
        <EventTrigger RoutedEvent="Canvas.Loaded">
            <BeginStoryboard>
                <Storyboard>
                    <DoubleAnimation Duration="0:0:5" From="0" RepeatBehavior="Forever" Storyboard.TargetName="rotTF" Storyboard.TargetProperty="Angle" To="360"/>
                    <PointAnimationUsingPath Duration="0:0:5" PathGeometry="{StaticResource lineEndPath}" RepeatBehavior="Forever" Storyboard.TargetName="lineEndPoint" Storyboard.TargetProperty="Point"/>
                </Storyboard>
            </BeginStoryboard>
        </EventTrigger>
    </Canvas.Triggers>
    <Ellipse Width="75" Height="50" Canvas.Left="25" Canvas.Top="25" Stroke="Black">
        <Ellipse.RenderTransform>
            <RotateTransform x:Name="rotTF" CenterX="37.5" CenterY="25"/>
        </Ellipse.RenderTransform>
    </Ellipse>
    <Path Stroke="Black" StrokeThickness="1.0">
        <Path.Data>
            <PathGeometry>
                <PathFigure StartPoint="0,0">
                    <LineSegment x:Name="lineEndPoint"/>
                </PathFigure>
            </PathGeometry>
        </Path.Data>
    </Path>
    <Path Data="{StaticResource lineEndPath}" Stroke="Black" StrokeDashArray="2,0,0" StrokeThickness="1.0"/>
</Canvas>

ونحن تحريك واحدة من نهاية قطعة مستقيمة PointAnimationUsingPath ، وتعيين مسار إلى دائرة (كما هو موضح من قبل خط منقط).

نصائح أخرى

ولست متأكدا ما هي المشكلة. يمكنك إضافة عنصر آخر إلى قماش الخاص بك الذي يصطف بشكل صحيح وتطبيق التحويل إلى قماش والتي ستدور كلا العنصرين؟

إذا كنت طالبا إذا كان هناك أي وسيلة ليقول "يصطف مع هذا" على الخط ثم لا، لا يمكنك أن تفعل ذلك بقدر ما أستطيع الآن. لتخطيطات معقدة مثل هذا يمكنك إما التجربة والخطأ مع KaXaml / بلاند، أو استخدام المصور لوضع بها ومن ثم تصدير إلى XAML.

وعلى افتراض فهمت بشكل صحيح، وأنت تسير لدينا لمعرفة الرياضيات لتغيير نقطة نهاية الخط الخاص بك. عذرا، لا أعرف الصيغة مرتجلا، ولكن ستجد في الأساس وجهة نظرك على القطع الناقص، ثم معرفة موقف انها تعطى زاوية دوران، ثم قم بتغيير نقطة نهاية الخط الخاص بك باستخدام تلك المعلومات.

في أجل ربط العنصرين في حوافها بواسطة خط، وأنا استخدم طريقة المربع المحيط كما هو موضح في <لأ href = "https://stackoverflow.com/questions/1737509/connecting-two-wpf-canvas- عناصر من سطر دون-باستخدام-المراسي / 1737536 # 1737536 "> ربط عنصرين قماش WPF بواسطة خط، من دون استخدام المراسي؟ .

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top