我有一个Silverlight 4应用程序。该应用程序有一个页面,上面有三个单选按钮。默认情况下,不会选择这些单选按钮。但是,当用户选择其中一个单选按钮时,我想通过向下滑动其余按钮来显示某些内容。例如:
用户点击选项1
如果用户点击选项2,它将如下所示:
有谁知道我如何使用Silverlight做到这一点?谢谢!
答案 0 :(得分:1)
您可以将所有元素都显示为可见,然后将Checked
控件的RadioButton
属性绑定到您希望能够隐藏/显示的部分的Visibility
属性,并使用值转换器将Checked(bool)转换为Visibility。
示例:
<StackPanel>
<RadioButton Name="r1" Content="Radio1" GroupName="group1"/>
<Grid Visibility="{Binding Checked, ElementName=r1, Converter={StaticResource boolToVisibilityConverter}">
<TextBlock Text="Hidden until Radio1 is checked"/>
</Grid>
<RadioButton Content="Radio2" GroupName="group1"/>
<RadioButton Content="Radio2" GroupName="group1"/>
</StackPanel>
这是一个boolToVisibilityConverter:
public class boolToVisibilityConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if(!(value is bool))
throw new Exception("invalid type");
return ((bool)value)? Visibility.Visible: Visibility.Collapsed;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
// Most of the time you are not handling bi-directional converts, but you need
// to implement the contract of IValueCoverter fully regardless.
throw new NotImplementedException();
}
}
答案 1 :(得分:1)
如果安装了Silverlight工具包,则可以访问名为Accordion的控件。它完全符合您的要求。 :)
工具包 http://silverlight.codeplex.com/
Accordion控制视频教程 http://www.silverlight.net/learn/videos/all/silverlight-toolkit-accordion-control/