如何创建“浮动”在其他控件上方右下角对齐的 Avalonia 控件

问题描述 投票:0回答:1

我正在将以下 Windows 窗体视图移植到 Avalonia:

enter image description here

Loading... (56%)
是一个
Label
控件,已添加到
Form
,且
Anchor
属性设置为
Bottom, Right
,因此在调整窗体大小时它将保留在右下角。它的 Z 顺序使得它始终出现在背景中“Lorem ipsum”文本框的前面。加载完成后,标签将隐藏。

如何将其移植到 Avalonia?我正在研究

Canvas
类,它允许完全自由的放置,但这给程序员准确更新
Canvas.Left
等属性带来了负担。有没有更简单的方法来实现这一点?

avaloniaui avalonia
1个回答
0
投票

我的第一个想法是,我建议创建一个 2 行 2 列的网格。然后,您可以将加载文本元素放置在网格的第二行第二列中。您的主要文本也将是网格子项,但 Grid.RowSpan 和 Grid.ColumnSpan 参数设置为 2。

至于实际的降价,可能是这样的:

<Grid>
  <Grid.ColumnDefinitions>
    <ColumnDefinition Width="*">
    <ColumnDefinition Width="100">
  </Grid.ColumnDefinitions>
  <Grid.RowDefinitions>
    <RowDefinition Width="*">
    <RowDefinition Width="20">
  </Grid.RowDefinitions>
  <TextBox Grid.ColumnSpan="2" Grid.RowSpan="2" />
  <Label Grid.Row="1" Grid.Column="1" Text="Loading (56%)" />
</Grid>

如果您确实想灵活地加载文本,您可以将所有这些放在单独的控件中,并用 ContentPresenter 替换 TextBox。这样,您可以使用这个新创建的控件包装任何内容,并向其添加加载文本(或更确切地说任何文本)。

希望有帮助

© www.soinside.com 2019 - 2024. All rights reserved.