gpt4 book ai didi

c# - WPF:将文本框放在堆栈面板中的单选按钮旁边

转载 作者:行者123 更新时间:2023-11-30 15:01:33 32 4
gpt4 key购买 nike

我有一个包含两个单选按钮(选项 1选项 2)的堆栈面板。如果用户选择选项 2,则应激活一个文本框,允许用户提供有关选项 2 的更多详细信息。

我想出了两个解决方案,但没有一个是我想要的。它们是这样的:

Screenshot of solution #1 and #2

解决方案 #1

解决方案 #1 的 XAML 代码非常简单,结果非常明显:

    <StackPanel Grid.Row="7" Grid.Column="1">
<RadioButton>Option 1</RadioButton>
<RadioButton>Option 2:</RadioButton>
<TextBox>Some Text that details option 2</TextBox>
</StackPanel>

这里的好处是文本框使用了整个宽度。然而,这不是我想要的,因为文本框应该放在选项 2 旁边。

解决方案 #2

下一步是在 RadioButton 标签中创建一个网格。这使我能够将文本框放置在正确的位置,但宽度不再缩放到 100%。

代码如下所示:

    <StackPanel Grid.Row="8" Grid.Column="1">
<RadioButton>Option 1</RadioButton>
<RadioButton>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="130*" />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" >Option 2:</TextBlock>
<TextBox Grid.Column="1" Margin="10,0,0,0">Some Text that details option 2</TextBox>
</Grid>
</RadioButton>
</StackPanel>

除了在我看来这是一个过度设计的解决方案这一点之外,问题在于:How to set the width of grid within a radio button entry to 100%?

此处提出了类似的问题 (How to set width to 100% in WPF),但使用 ItemContainerStyle 属性不适用于单选按钮。

在我看来,一定有更简单(或至少有效)的解决方案。谁能帮忙?

最佳答案

使用这个:

<StackPanel Grid.Row="8"
Grid.Column="1">
<RadioButton>Option 1</RadioButton>
<RadioButton HorizontalAlignment="Stretch" HorizontalContentAlignment="Stretch">
<DockPanel LastChildFill="True">
<TextBlock >Option 2:</TextBlock>
<TextBox Grid.Column="1"
Margin="10,0,0,0">Some Text that </TextBox>
</DockPanel>
</RadioButton>
</StackPanel>

或者如果你想保留网格:

 <StackPanel Grid.Row="8"
Grid.Column="1">
<RadioButton>Option 1</RadioButton>
<RadioButton HorizontalAlignment="Stretch" HorizontalContentAlignment="Stretch">
<Grid HorizontalAlignment="Stretch">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<TextBlock >Option 2:</TextBlock>
<TextBox Grid.Column="1"
Margin="10,0,0,0">Some Text that </TextBox>
</Grid>
</RadioButton>
</StackPanel>

关于c# - WPF:将文本框放在堆栈面板中的单选按钮旁边,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14032187/

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