【发布时间】:2020-07-20 13:59:04
【问题描述】:
我使用 WPF 应用程序并在 dicom 图像上画了一条线。但我的问题是当我调整主窗口大小时,行位置发生了变化。它不会在我画的地方持续存在。我尝试过使用pointtoscreen 方法和translatepoint 方法。但没有用。这样做的正确方法是什么。
我使用了两个 wpf 图像控件。一个是显示dicom图像,另一个是在它上面绘制注释。以下是我的wpf xaml代码。
<Border x:Name="Border" ClipToBounds="True">
<Grid>
<Image x:Name="ImageTileViewer"
Margin="-234"
Source="{Binding CurrentImage}"
Stretch="None"
StretchDirection="DownOnly" RenderTransformOrigin="0.5,0.5"/>
<Grid Name="AnnotationImageGrid">
<Image Name="AnnotationImage" Stretch="None" RenderTransformOrigin="0.5,0.5"/>
</Grid>
</Grid>
【问题讨论】:
-
看起来你有一个窗口并将两个图像放在窗口中。通常,诀窍是在窗口中添加一个面板,以便参考点始终相同。问题是当您将主图像居中时,线条不会自动移动。如果您注意到两张图片的图像中心完全相同,并且线条长度相同。图像的参考通常是左上角。通过将线条和图像都放在面板中,可以更轻松地在居中时保持参考点相同。
-
谢谢jdweng。请问有样品吗?
-
@jdweng 我不能告诉你,在调整主窗口大小时,我会覆盖 AnnotationImageGrid 的 SizeChanged 事件。在那里我缩放第二个图像控件(AnnotationImage)。如下-----------------------------------TransformGroup transformGroup = (TransformGroup)_currentTileControl.AnnotationImage.RenderTransform; ScaleTransform st = (ScaleTransform)transformGroup.Children[0]; st.ScaleX = 因子; st.ScaleY = 因子;
-
通常图像具有以像素为单位的顶部、左侧、宽度、高度。所以你可以保持图像居中线条不必移动,但线条的长度可能需要改变。如果将图像大小加倍,则线的长度将减半。
-
@jdweng 我在下面提到了这个。
标签: c# wpf windows image drawing