我有一个包含两个单选按钮(选项 1和选项 2)的堆栈面板。如果用户选择选项 2,则应激活一个文本框,允许用户提供有关选项 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-tags 中创建一个网格。这使我可以将文本框放置在正确的位置,但是宽度不再缩放到 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>
除了在我看来这似乎是一个设计过度的解决方案之外,问题就在这里:如何将单选按钮条目中的网格宽度设置为 100%?
此处提出了类似的问题(如何在 WPF 中将宽度设置为 100%),但使用该ItemContainerStyle
属性不适用于单选按钮。
在我看来,必须有一个更容易(或至少是可行的)解决方案。任何人都可以帮忙吗?