c# - 通过代码和非统一位置在图像顶部生成标签
问题描述
我是 WPF 的新手。我正在尝试重写我以前使用 winforms 所做的应用程序。它本质上是一种乐器(弹拨弦)的图像,显示每个音符位置的标签和演奏它的能力。
我的问题是:我制作了一个网格,并在第一行插入了一个资源图像,跨越 3 个列。现在我需要在这张图片上放置多个标签,每个标签对应一个特定的音符。我如何在图像上放置标签..请看这两张图片
这是我当前的 WPF 布局
这就是我在winforms中的做法
是否可以通过代码生成多个标签,就像第二张图片一样?
请注意,这些标签将在播放歌曲时显示。每个标签将对应一个特定的音符
解决方案
您将需要结合您选择的画布和布局控件。在这个例子中,我使用了停靠面板。
<DockPanel LastChildFill="True">
<StackPanel DockPanel.Dock="Bottom" Height="80" Orientation="Horizontal" HorizontalAlignment="Right">
<Button Margin="5">Click me</Button>
<Button Margin="5">Click me</Button>
<Button Margin="5">Click me</Button>
</StackPanel>
<Canvas x:Name="FretLayoutCanvas">
<Button Canvas.Left="5" Canvas.Top="15" >Fret 1</Button>
<Button Canvas.Left="55" Canvas.Top="55" >Fret 2</Button>
</Canvas>
</DockPanel>
这看起来像这样:
在后面的代码中,将您的控件添加到 FretLayoutCanvas 并为每个控件计算适当的 Left 和 Top。
推荐阅读
- plotly-dash - 是否可以在单个独立的 html 文件中导出 Plotly Dash 应用程序?
- django - 如果用户已经登录并转到 Django 中的登录页面,我如何重定向离开登录页面?
- python - 在 Python 中修改类成员
- java - 如何在Android中检查数字字段是否为空
- java - ConfigurationProperties 和 ConstructorBinding 的复杂类型 DefaultValue
- docker - 如何安装 openshift origin 客户端工具 v3.11.0?什么是最好的(开源)操作系统?
- sas - SAS 宏变量解决数据步中的问题
- firebase - Flutter StreamBuilder 返回 null
- office365 - 在没有频道分配的会议中,Microsoft Teams 中的文件在哪里结束?
- javascript - Google Maps API Javascript,从页面上的表单输入中获取经度纬度