wpf C#中线条起点和终点的特殊形状
Posted
技术标签:
【中文标题】wpf C#中线条起点和终点的特殊形状【英文标题】:Special shape of Line starting and ending point in wpf C# 【发布时间】:2021-03-08 07:40:04 【问题描述】:您好,我需要一个特殊形状的起点和终点线的解决方案。我使用线属性。我想要这样的解决方案。。
你可以看到这个 Line 属性在开头和结尾都有“+”的形状。如何在 XAML 和我的代码中执行。这是我的代码
<Canvas Margin="10" IsEnabled="Binding IsEnableCanvas" Visibility="Binding Path=ISCanvasVisible, Converter=StaticResource Converter">
<Image Source="Binding DIIMGFINAL" cal:Message.Attach="[Event MouseDown] = [Action MDownCalCulateDistance($source, $eventArgs)];
[Event MouseUp] = [Action MUpCalCulateDistance($source, $eventArgs)];
[Event MouseMove] = [Action MMoveCalCulateDistance($source, $eventArgs)]" Stretch="Uniform" />
<Line Visibility="Binding Path=ISLineDistanceVisible, Converter=StaticResource Converter" IsHitTestVisible="False" X1="Binding FirstPoint.X" Y1="Binding FirstPoint.Y"
X2="Binding SecondPoint.X" Y2="Binding SecondPoint.Y" StrokeStartLineCap="Triangle" StrokeEndLineCap="Triangle"
Stroke="Red" StrokeThickness="2">
</Line>
<TextBlock Canvas.Left="Binding TxtblckPoint_First_Left.X" Canvas.Top="Binding TxtblckPoint_Second_Left.Y" Text="Binding Path=DisTanceInMM, Mode=OneWay" FontSize="20" Foreground="Yellow"></TextBlock></Canvas>
如您所见,我使用了 StrokeStartLineCap 和 StrokeEndLineCap Triangle,但这不是我想要的。如果我使用更大的 StrokeThickness 值,它可以看到。但我的要求并没有那么厚。这是我的 C# 代码
if (_firstPoint.X == 0 && _firstPoint.Y == 0)
System.Windows.Point px1 = e.GetPosition((System.Windows.Controls.Image)sender);
_firstPoint = px1;
else if((_firstPoint.X != 0 && _firstPoint.Y != 0) && (_secondPoint.X == 0 && _secondPoint.Y == 0))
System.Windows.Point px2 = e.GetPosition((System.Windows.Controls.Image)sender);
_secondPoint = px2;
var geometry = new FrameGeometry(DicomDataSet);
var patientCoord1 = geometry.TransformImagePointToPatient(new Point2(Convert.ToInt32(_firstPoint.X), Convert.ToInt32(_firstPoint.Y)));
var patientCoord2 = geometry.TransformImagePointToPatient(new Point2(Convert.ToInt32(_secondPoint.X), Convert.ToInt32(_secondPoint.Y)));
FirstPoint = _firstPoint;
SecondPoint = _secondPoint;
我必须做些什么来展示起点和终点的特殊形状。提前致谢。
【问题讨论】:
在端点处放置两个您需要的任意形状的 Path 元素。 你能不能给出一些我看不懂的代码 我应该在 C# 或 XAML 中放置什么 【参考方案1】:在端点放置两个您需要的任意形状的 Path 元素:
<Path Stroke="Red" Data="M-5,0 L5,0 M0,-5 L0,5"
Canvas.Left="Binding FirstPoint.X"
Canvas.Top="Binding FirstPoint.Y"/>
<Path Stroke="Red"
Canvas.Left="Binding SecondPoint.X"
Canvas.Top="Binding SecondPoint.Y">
<Path.Data>
<GeometryGroup>
<LineGeometry StartPoint="-5,0" EndPoint="5,0"/>
<LineGeometry StartPoint="0,-5" EndPoint="0,5"/>
</GeometryGroup>
</Path.Data>
</Path>
【讨论】:
谢谢。它可以创建形状,但 Line 不工作了,我正在处理这个 谢谢它的工作,但我遇到了另一个问题现在必须解决它以上是关于wpf C#中线条起点和终点的特殊形状的主要内容,如果未能解决你的问题,请参考以下文章