【发布时间】: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 中放置什么
标签: c# wpf image mvvm caliburn.micro