- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前在 WPF 应用程序中有一个带有图像背景的 Canvas 。在此 Canvas 上方,我有一个 slider 控件。当用户来回滑动 slider 的值时,我需要在 Canvas 上笔直向下绘制一条红线。每次更改 slider 值时我都需要这样做,以便红线始终与 slider 的拇指对齐。我在这里遇到的一个大问题是试图弄清楚如何有效地绘制线条,然后在用户更改 slider 的值时“删除”先前绘制的线条并在新的拇指值处绘制一条新线。如果我简单地重绘 Canvas 的背景图像,应用程序会延迟很多并且不能正常工作(另外,这并不能完全解决问题,因为无论如何您仍然可以看到之前绘制的线条)。
任何帮助将不胜感激,尤其是示例,因为这是我在 C# 中的第一个 WPF 应用程序,我仍然感受到它的独特性(与 Windows 窗体相反)。非常感谢!
最佳答案
与其尝试自己划清界线,一种更符合 WPF 的方法是使用 Line。目的。参见 Shapes and Basic Drawing in WPF Overview .既然要让线条与Slider对齐,那么可以使用数据绑定(bind),将线条的X位置绑定(bind)到Slider的位置:
<DockPanel>
<Slider
Name="HorizontalSlider"
DockPanel.Dock="Top"
Maximum="{Binding ActualWidth, ElementName=Canvas}"/>
<Canvas Name="Canvas" Margin="5.5 0">
<Line
X1="{Binding Value, ElementName=HorizontalSlider}"
Y1="0"
X2="{Binding Value, ElementName=HorizontalSlider}"
Y2="{Binding ActualHeight, RelativeSource={RelativeSource AncestorType=Canvas}}"
Stroke="Red"/>
</Canvas>
</DockPanel>
(请注意,我通过将 Canvas 上的边距设置为 5.5 来作弊。 slider 上的拇指有一些厚度并且不会移动 slider 控件的整个宽度,所以为了使线条对齐以中心为中心,我试图使 Canvas 与轨 Prop 有相同的宽度。)
关于c# - WPF - 将图像绘制到 Canvas 并反复删除和重新绘制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3299519/
我有一个小心理障碍:我有一个 html 中的 javascript 函数,可以在按下某个键时写入键码。我已经将它连接到一个函数,该函数可以准确地告诉我按下了什么字符和键码(不包括在内)。 我的问题是如
我上网已经有一段时间了,现在正试图解决这个问题。可以找到正在发生的事情的视频: https://i.gyazo.com/59fc489b6099b513c41aedeed482b8d2.mp4 $(d
我有一个 Python 程序,其中一个函数导入另一个脚本并运行它。但是脚本仅在第一次函数被调用时运行。 def Open_Generator(事件): 导入密码生成器 有什么建议吗? *该函数在 tk
我正在尝试在 git 中创建两个包含二进制文件的分支 - 一个“开发”分支和一个“稳定”分支。在我想将它们“发布”到稳定分支之前,开发分支可以对这些文件进行一些更改(并且稳定分支已重命名这些文件,以防
我在 IBM BlueMix 中的 Node Red 应用程序反复崩溃 - 每小时一次 - 除了“exited with status: 1.”之外没有任何真正的错误消息 如何解决此问题? 是否有来自
我是一名优秀的程序员,十分优秀!