gpt4 book ai didi

XAML 如何使文本 block /文本框编辑切换?

转载 作者:行者123 更新时间:2023-12-01 14:40:52 25 4
gpt4 key购买 nike

我可能处理这一切都是错误的,所以如果您有其他建议,请告诉我。

我正在为 Windows RT 制作一个应用程序,它将向用户显示一堆文本 block ,例如角色统计信息。用户将看到:

Str: 10Con: 10Dex: 10

等等。

我希望他们能够填写这些内容,然后根据结果计算出一个选择 View 值。

我的想法是单击顶部的“编辑”按钮并在每个可编辑文本 block 上切换一些文本框。

尝试使用“Blend for Visual Studio”进行设置时,我似乎无法制作小于 49x34 的文本框(比我的文本 block 大得多)。

我打算找到一种方法在单击按钮时为每个文本 block (使用其尺寸)生成一个文本框,但是由于它们总是相同的并且会有很多我试图制作它们通过混合静态。

我是 XAML 的新手,我似乎找不到人们设置这样的可编辑字段的好例子,那么我应该如何让一堆静态字段具有可编辑的文本框?

最佳答案

我会在 XAML 中创建 TextBox 和 TextBlock 叠加层,并将它们直接放在网格中的彼此之上,使用水平和垂直对齐“居中”以确保文本始终完全对齐。我还会使用静态宽度来确保列排列整齐。

从那里,您可以直接将可见性绑定(bind)到某个 bool “IsEditing”属性,以确保一次只显示一个控件。

<StackPanel Orientation="Horizontal">
<TextBlock Text="Str: " Width="40" VerticalAlignment="Center" />
<Grid Width="40" VerticalAlignment="Center">
<TextBlock Text="{Binding Strength}"
Visibility="{Binding IsEditing, Converter={StaticResource BooleanToInvisibilityConverter}}"
VerticalAlignment="Center"
HorizontalAlignment="Center" />
<TextBox Text="{Binding Strength}"
Visibility="{Binding IsEditing, Converter={StaticResource BooleanToVisibilityConverter}}"
VerticalAlignment="Center"
HorizontalContentAlignment="Center" />
</Grid>
</StackPanel>

在此过程中,您必须定义“BooleanToVisibility”和“BooleanToInvisiblity”转换器资源。我喜欢this implementation by Diedrik Krols .它既好又简单,带有反转选项。

关于XAML 如何使文本 block /文本框编辑切换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14015939/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com