我正在尝试制作一个付款方式页面。我要执行的功能是-单击radio button
,expander
主体应显示文本框以添加相应的详细信息。所以我尝试了这段代码:
<Grid Grid.Row="2">
<StackLayout Orientation="Vertical" >
<Frame BorderColor="Gray"
CornerRadius="5"
Padding="8">
<StackLayout >
<Expander>
<Expander.Header>
<StackLayout>
<Label Text="COD"/>
<RadioButton GroupName="PaymentMethod"
Text="{lang:Translate COD}"
IsChecked="False"/>
</StackLayout>
</Expander.Header>
</Expander>
</StackLayout>
</Frame>
<Frame BorderColor="Gray"
CornerRadius="5"
Padding="8">
<StackLayout>
<Expander>
<Expander.Header>
<StackLayout>
<Label Text="Card Payment"/>
<RadioButton GroupName="PaymentMethod"
Text="{lang:Translate Card}"
IsChecked="False"/>
</StackLayout>
</Expander.Header>
<Expander.Content>
<Grid Padding="10">
<Grid.RowDefinitions>
<RowDefinition Height="auto"/>
<RowDefinition Height="auto"/>
</Grid.RowDefinitions>
<Grid Grid.Row="0">
<StackLayout Orientation="Horizontal">
<local:XEntry Style="{StaticResource entry}"
Placeholder="Card Number"
PlaceholderColor="LightGray"
MaxLength="100"/>
<!--Text="{Binding CardNumber}"-->
<local:XEntry Style="{StaticResource entry}"
Placeholder="MM"
PlaceholderColor="LightGray"
Text="{Binding Month}"
MaxLength="2"/>
<Label Text="/"/>
<local:XEntry Style="{StaticResource entry}"
Placeholder="YY"
PlaceholderColor="LightGray"
MaxLength="2"/>
<!--Text="{Binding Year}"-->
<local:XEntry Style="{StaticResource entry}"
Placeholder="CVV"
PlaceholderColor="LightGray"
MaxLength="3"/>
<!--Text="{Binding CVV}"-->
</StackLayout>
</Grid>
<Grid Grid.Row="1">
<StackLayout>
<local:XEntry Style="{StaticResource entry}"
Placeholder="Card Holder Name"
PlaceholderColor="LightGray"
MaxLength="100"/>
<!--Text="{Binding CardHolderName}"-->
</StackLayout>
</Grid>
</Grid>
</Expander.Content>
</Expander>
</StackLayout>
</Frame>
<Frame BorderColor="Gray"
CornerRadius="5"
Padding="8">
<StackLayout>
<Expander>
<Expander.Header>
<StackLayout>
<Label Text="Net Banking"/>
<RadioButton GroupName="PaymentMethod"
Text="{lang:Translate Card}"
IsChecked="False" />
<!--{Binding NetBank}-->
</StackLayout>
</Expander.Header>
<Expander.Content>
<StackLayout>
<Label Text="Net Banking"/>
</StackLayout>
</Expander.Content>
</Expander>
</StackLayout>
</Frame>
</StackLayout>
</Grid>
仅当header
包含上面粘贴的Lable
代码时,扩展器才能工作。当我在RadioButton
中仅添加header
时,它不会扩展。我不希望标题中出现标签。相反,当单选按钮处于活动状态时,我希望扩展器能够扩展。我正在使用Xamarin.Forms 4.6 Release RadioButton
和Expander
。请提出解决方案。预先感谢。
感谢您的时间。这是答案:
<Expander x:Name="MyExpander">
<Expander.Header>
<StackLayout>
<RadioButton HorizontalOptions="StartAndExpand" WidthRequest="200" GroupName="PaymentMethod"
Text="Credit/Debit Card"
IsChecked="False"
Clicked="RadioButton_Clicked"/>
</StackLayout>
</Expander.Header>
</Expander>
并且在cs文件中:
private void RadioButton_Clicked(object sender, EventArgs e)
{
MyExpander.IsExpanded = !MyExpander.IsExpanded;
}