是否可以将 RadioButton 保留为可扩展控件 Xamarin forms 4.6 的 Header
Is it possible to keep RadioButton as Header of the expandable control Xamarin forms 4.6
我正在尝试制作付款方式页面。我尝试做的功能是 - 单击 radio button
和 expander
body 应该显示文本框以添加相应的详细信息。所以我尝试了这段代码:
<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
代码时,Expander 才会工作。当我只在 header
中添加 RadioButton
时,它不会扩展。我不想要 header 中的标签。相反,我希望扩展器在单选按钮处于活动状态时展开。我正在使用 Xamarin.Forms 4.6 版本 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;
}
我正在尝试制作付款方式页面。我尝试做的功能是 - 单击 radio button
和 expander
body 应该显示文本框以添加相应的详细信息。所以我尝试了这段代码:
<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
代码时,Expander 才会工作。当我只在 header
中添加 RadioButton
时,它不会扩展。我不想要 header 中的标签。相反,我希望扩展器在单选按钮处于活动状态时展开。我正在使用 Xamarin.Forms 4.6 版本 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;
}