【发布时间】:2020-05-14 01:55:42
【问题描述】:
我正在尝试创建如下所示的内容:
它被设计为用于 VMIX 软件、视频广播目的的 XAML 标题。
我将从 GSheet 中获取大量数据,在 VMIX 中处理,并将这些数据分配给我的 TextBlock,例如“候选人”、“城市”和投票百分比。
从我想要增加/减少条形大小的百分比开始,我设法做到了其中的一部分。
但主要问题是让 % TextBlock 边距适合矩形的右侧。 任何人都知道我该怎么做?
我从来没有使用过 C# 编码,我有 C、C++ 和 JS 的背景,所以我花了一整天的时间寻找这个目的,但无法做到。
我看到了一些适合的绑定方法,但我无法使用它们。
此外,我正在为 Visual Studio 2017 开发 Blend,我不明白为什么按 F5 时我不能在其上运行一些简单的代码......这是另一个问题。
非常感谢您的帮助。
编辑:
到目前为止,我已经找到了一些新的解决方案,真正的 DIY 解决方案,但如果我找不到更好的解决方案,这是我的 lsat 解决方案:
我将为 1 个 ProgressBar 提供 2 个 TextBlock(感谢 Chris)
<Grid Margin="0,0,-8,0">
<TextBlock x:Name="Votes1" HorizontalAlignment="Left" TextWrapping="Wrap" VerticalAlignment="Top" Margin="{Binding Text, ElementName=MarginVotes1}" FontSize="72" Width="853" Height="188"><Run Text="6"/><Run Text="00"/></TextBlock>
<ProgressBar HorizontalAlignment="Left" Height="79" Margin="171,503,0,0" VerticalAlignment="Top" Width="{Binding Path=Text, ElementName=Votes1}" Background="#FFEA4545"/>
<TextBlock x:Name="MarginVotes1" HorizontalAlignment="Left" Margin="171,587,0,0" TextWrapping="Wrap" VerticalAlignment="Top" FontSize="72" Height="98" Width="550"><Run Text="8"/><Run Text="0"/><Run Text="0"/><Run Text=","/><Run Text="4"/><Run Text="9"/><Run Text="0"/><Run Text=",0,0"/>
</TextBlock>
所以这很好用,但我必须在我的“MarginVotes1”值是什么之前做好准备(在 GoogleSheet 中)。
最好直接在代码后面做这样的事情:
将 Votes1.Text 转换为 val 中的 Int STORE
将 x 设置为 val + DefaultMargin
在 MarginX 中将 x 转换为字符串 STORE
创建字符串 MarginVoteStr as MarginX + ",500, 0, 0"
将 Votes1.Margin 设置为 MarginVoteStr
【问题讨论】:
-
如果是我,我建议只设置实际的progressBar 控件样式模板,使其看起来像您想要的那样,而不是尝试从头开始创建。将使其更加通用,并花费更少的精力来实现目标。
-
非常感谢克里斯的回答!它看起来像是一个需要照顾的解决方案。因此我必须测试它是否可以在广播软件中解释。此外,我不知道如何设置它的大小以及我的初始目标是自动设置文本边距。你对此有什么想法吗?
-
请发布您的 Xaml。这将有助于了解您目前如何使上述工作到目前为止。
-
嗨杰夫!以上还不行,这只是我目标的草稿。我正在为视觉 2017 使用混合,所以现在我在 C# 中有一行代码。但是我明天会发送它,因为我现在不在办公室
-
我已经编辑了我的问题,所以你可以看到代码