C# 用银光显示内容
我有一个Silverlight 4应用程序。此应用程序有一个带有三个单选按钮的页面。默认情况下,这些单选按钮均未选中。但是,当用户选择其中一个单选按钮时,我希望通过向下滑动其余按钮来显示一些内容。例如:C# 用银光显示内容,c#,silverlight,C#,Silverlight,我有一个Silverlight 4应用程序。此应用程序有一个带有三个单选按钮的页面。默认情况下,这些单选按钮均未选中。但是,当用户选择其中一个单选按钮时,我希望通过向下滑动其余按钮来显示一些内容。例如: 选择1 选择2 选择3 用户单击选项1 选择1 我的内容出现在这里。项目2和3将向下滑动 选择2 选择3 如果用户单击选项2,它将如下所示: 选择1 选择2 我的内容出现在这里。项目3将向下滑动。项目1已折叠 选择3 有人知道我如何用Silverlight做到这一点吗?谢谢
- 选择1
- 选择2
- 选择3
- 选择1
- 我的内容出现在这里。项目2和3将向下滑动
- 选择2
- 选择3
- 选择1
- 选择2
- 我的内容出现在这里。项目3将向下滑动。项目1已折叠
- 选择3
有人知道我如何用Silverlight做到这一点吗?谢谢 您可以将所有元素设置为可见,然后将
RadioButton
控件的Checked
属性绑定到希望隐藏/显示的部分的可见性
属性,并使用值转换器将选中(bool)转换为可见性
例如:
<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>
如果安装了Silverlight toolkit,则可以访问名为Accordion的控件。它完全符合您的要求。:) 工具箱 手风琴控制视频教程
您的转换器仍然返回一个
bool
:您应该将其转换为可见性
,而不是将其反转。我已更正了为转换器添加的“Nissan Fan”代码。在Silverlight 4中,绑定属性名称为“IsChecked”。
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();
}
}