2010-10-22 29 views
5

Tôi có bộ công cụ WP7 và đang sử dụng công tắc bật tắt.Cách tùy chỉnh bộ công cụ wp7 ​​ToggleSwitch

Tại thời điểm hiển thị Bật hoặc Tắt.

Tôi biết bạn có thể tùy chỉnh nó bằng cách sử dụng mẫu nội dung và mã mẫu được cung cấp kèm theo cho thấy điều đó, nhưng tôi không thể tìm cách thay đổi Bật/Tắt cho cái gì khác.

Tôi muốn hiển thị Yes và No.

Trả lời

2

Hum kể từ "On" et "Off" chuỗi đến từ bộ chuyển đổi thiết lập trong một phương pháp riêng trong mã nguồn, tôi không nhìn thấy rất nhiều lựa chọn : http://silverlight.codeplex.com/SourceControl/changeset/view/55144#1325068

Thay đổi mã nguồn để linh hoạt hơn?

+0

Không thực sự là câu trả lời tôi muốn nhưng tôi thấy không có thay thế trừ văn bản nút chuyển đổi của riêng tôi . –

2

Có một cách dễ dàng hơn nhiều, thiết lập các nội dung để No và sau đó tạo ra một xử lý sự kiện cho mỗi chuyển đổi để làm cho nó nói Yes và sau đó Số:

private void ToggleSwitch_Checked(object sender, RoutedEventArgs e) 
    { 
     togButton.Content = "Yes"; 
    } 

    private void ToggleSwitch_Unchecked(object sender, RoutedEventArgs e) 
    { 
     togButton.Content = "No"; 

    } 
3

tôi đã tạo chuyển đổi giá trị của riêng tôi đó là ràng buộc vào cùng một thuộc tính boolean trên mô hình khung nhìn của tôi là IsChecked. Vì vậy, trên xem nó trông giống như:

<toolkit:ToggleSwtich IsChecked="{Binding Completed}" Content="{Binding Completed, Converter={StaticResource YesNoConverter}" /> 
2

Tôi biết câu hỏi này khá cũ, nhưng tôi nghĩ rằng câu trả lời này có thể hữu ích vì không cần phải biên dịch lại mã kiểm soát.

Chúng tôi có thể liên kết Content với thuộc tính IsChecked và sử dụng Converter trả về chuỗi tùy chỉnh của chúng tôi.

Đây là những gì tôi đã làm cho dự án của tôi:

<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}}"/> 

nơi SwitchOnOffConverter là này một:

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(); 
    } 
} 
+1

Tôi thích giải pháp này. Rất thanh lịch. –

Các vấn đề liên quan