我有WP7工具包,並使用切換開關。如何定製wp7工具包ToggleSwitch
目前它顯示開或關。
我知道你可以使用內容模板來定製它,並且與tookit一起提供的示例代碼就是這樣,但是我找不到changine開/關的其他方法。
我想,因爲「開」等「關」的字符串來自於源代碼的私有方法設置轉換器顯示是和
號我有WP7工具包,並使用切換開關。如何定製wp7工具包ToggleSwitch
目前它顯示開或關。
我知道你可以使用內容模板來定製它,並且與tookit一起提供的示例代碼就是這樣,但是我找不到changine開/關的其他方法。
我想,因爲「開」等「關」的字符串來自於源代碼的私有方法設置轉換器顯示是和
號嗚嗚,我沒有看到很多的替代:http://silverlight.codeplex.com/SourceControl/changeset/view/55144#1325068
更改源代碼以獲得更靈活的東西?
還有一個更簡單的方法,將內容設置爲否,然後創建一個事件處理程序爲每個切換,使其說是,然後編號:
private void ToggleSwitch_Checked(object sender, RoutedEventArgs e)
{
togButton.Content = "Yes";
}
private void ToggleSwitch_Unchecked(object sender, RoutedEventArgs e)
{
togButton.Content = "No";
}
我創建了自己的價值轉換器,被綁定在我的視圖模型上與IsChecked相同的布爾屬性。因此,在視圖上它看上去像:
<toolkit:ToggleSwtich IsChecked="{Binding Completed}" Content="{Binding Completed, Converter={StaticResource YesNoConverter}" />
我知道這個問題是很老,但我認爲這是因爲沒有必要重新編譯控件的代碼這個答案可能是有用的。
我們可以將Content
綁定到IsChecked
屬性,並使用返回我們的自定義字符串的Converter
。
這是我做我的項目:
<toolkit:ToggleSwitch SwitchForeground="{StaticResource PhoneAccentBrush}"
Grid.Row="3" Grid.Column="1"
Header="{Binding Path=LocalizedResources.MyLabel, Source={StaticResource LocalizedStrings}}"
Content="{Binding IsChecked, Converter={StaticResource SwitchOnOffConverter}, RelativeSource={RelativeSource Self}}"/>
其中SwitchOnOffConverter
是這個:
public class SwitchOnOffConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return ((bool) value) ? AppResources.YesText : AppResources.NoText;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotSupportedException();
}
}
我喜歡這個解決方案。十分優雅。 – 2013-10-01 21:27:22
並不是我真正想要的答案,但我看到的只是寫我自己的撥動開關別無選擇。 – 2010-10-23 03:04:48