gpt4 book ai didi

WPF Dockpanel 第一个子项使用剩余空间

转载 作者:行者123 更新时间:2023-12-02 09:45:57 24 4
gpt4 key购买 nike

在我的窗口中,有一个 DockPanel 列表来指定几个文件。每个 DockPanel 都有一个文本框(用于路径)和一个按钮(用于浏览文件)。

我重新创建了一个简单的 WPF 页面来演示此处的问题:

<Page
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Width="150"
Height="22">
<DockPanel>
<TextBox HorizontalAlignment="Stretch"/> <!-- path to file -->
<Button Content="..." DockPanel.Dock="Right"/> <!-- button to browse for file -->
</DockPanel>
</Page>

问题是我希望按钮位于文本框的右侧,但这会导致文本框非常小,因为 DockPanel 的 LastChild 是它占用剩余空间的按钮。我尝试通过将它们打乱并设置 LastChildFill="False" 来改变这一点,但这只会导致按钮再次变小,而不会使文本框变宽(即使使用 Horizo​​ntalAlignment="Stretch")。

我希望控件按该顺序排列的原因是,当使用 tab 在窗口中导航时,我希望用户先到达 TextBox,然后再到达 Button。我研究了设置 TabIndex ,但感觉很老套,WPF 最喜欢的功能是 tabindex 是按照 XAML 中定义的控件的顺序排列的。更不用说我可能必须在窗口中的所有内容上手动设置 TabIndex。

对我来说,似乎 TextBox.Horizo​​ntalAlignment 的设置不受尊重。 如何使第一个控件使用尽可能多的空间,但仍保留 Tab 键顺序?

最佳答案

像这样:

<DockPanel LastChildFill="True">
<Button Content="..." DockPanel.Dock="Right"/> <!-- button to browse for file -->
<TextBox DockPanel.Dock="Left" HorizontalAlignment="Stretch"/> <!-- path to file -->
</DockPanel>

关于WPF Dockpanel 第一个子项使用剩余空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3677918/

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