WPF: كيف تضع كائن/شكل في نهاية مسار الخط/السكتة الدماغية؟
سؤال
أريد فقط أن أسأل عما إذا كانت هناك طريقة يمكنني فيها وضع كائن (دائرة) في نهاية مسار خط معين.
مشابهة لهذه:
--------------------------------------------O
Start End
الآن ، لدي الرمز التالي لتتبع السطر:
<Grid x:Name="LayoutRoot" >
<Path Stroke="Red" StrokeThickness="4" x:Name="path4" Data="{Binding MyProperty1}" >
<Path.StrokeDashArray>
<System:Double>500</System:Double>
<System:Double>1000</System:Double>
</Path.StrokeDashArray>
</Path>
</Grid>
حيث تختلف بيانات المسار الخاص بي (مثل M532،668 L523،695 361،663 101،678 117،638).
يبدو أن الرسوم المتحركة الخاصة بي ...
<Storyboard x:Key="Story1" RepeatBehavior="Forever">
<DoubleAnimationUsingKeyFrames BeginTime="00:00:00"
Storyboard.TargetName="path1"
Storyboard.TargetProperty="(Shape.StrokeDashOffset)">
<SplineDoubleKeyFrame KeyTime="00:00:00" Value="500"/>
<SplineDoubleKeyFrame KeyTime="00:00:08" Value="0"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
أي اقتراحات؟
المحلول
هناك على الأقل بطريقتين يمكنك القيام بذلك ؛ وهو الأفضل على الأرجح يعتمد على علاقة الدائرة بالخط.
إذا كانت الدائرة جزءًا من نفس الشكل مثل الخط ، فقم بتغيير طريقك لتضمين القطع الناقص (ARC) في نهاية الخط. يمكن القيام بذلك عن طريق تغيير بيانات المسار ، إما عن طريق إضافة دائرة إلى النهاية أو عن طريق إضافة رقم آخر إلى قياس المسار.
إذا كانت الدائرة مكونًا منفصلاً من الناحية المفاهيمية ، وكنت تريد فقط وضع هذا المكون بجوار الخط ، فيمكنك فقط استخدام StackPanel مع توجيهه إلى الأفقي:
<StackPanel Orientation="Horizontal">
<Path /> <!-- The line -->
<Ellipse /> <!-- The circle -->
</StackPanel>
(ملاحظة: في بعض السيناريوهات ، يمكنك القيام بذلك باستخدام خاصية EndLinEcap. لن ينجح ذلك في هذه الحالة على الرغم من أنه يبدو أنك تريد أن تكون الدائرة أكبر من سمك السكتة الدماغية. خط.)