2010-06-15 23 views
5

Trong vòng một ứng dụng Desktop Tôi có một nút bật tắt:Tại sao WPF nút Toggle xung một lần được kiểm soát

<ToggleButton x:Name="CFStglBtn" Checked="cfsCBox_Checked" 
       Unchecked="cfsCBox_Unchecked" 
       IsChecked="True" HorizontalAlignment="Left" Margin="5,0,0,0"> 
    <StackPanel Orientation="Horizontal"> 
     <Image Source="assets\telephone.png" Margin="3,0,0,0" /> 
     <TextBlock Text="CFS" FontSize="10" Margin="5,5,5,0" 
        Foreground="DarkSlateGray"/> 
    </StackPanel> 
</ToggleButton> 

Đối với trường hợp Checked Tôi đang thiết lập một giá trị và sau đó thực hiện một phương pháp FilterView(); // mã phụ

Trạng thái không được chọn chỉ ngược lại. đặt lại một biến và thực hiện lại phương thức

Câu hỏi tôi nhận thấy khi bỏ chọn nút chuyển đổi, nút tiếp tục xung hoặc flash (chuyển từ xanh sang chrome) như thể nó vẫn còn tiêu điểm. Nút sẽ vẫn như thế này cho đến khi một nút khác được nhấp.

Có cách nào để loại bỏ tiêu điểm này sao cho khi nút được bỏ chọn, nút quay trở lại trạng thái không được chọn mà không có màu nhấp nháy/xung.

  • Như bạn có thể nhìn thấy từ trên đây là một nút tiêu chuẩn chuyển đổi không có phong cách hoặc tùy chỉnh
  • tôi thử nghiệm này trên chỉ là một nút thường xuyên và tôi thấy như vậy xảy ra khi nhấp vào nút sẽ tiếp tục xung/flash cho đến khi một nút khác được nhấp.

Làm cách nào bạn giải quyết vấn đề này hoặc ngăn không cho hiệu ứng này xảy ra.

Cảm ơn bạn

+0

không chắc chắn lý do tại sao nó không đăng nhưng đây là mã cho nút bật tắt rlcrews

+0

Mã cần đứng trước một dòng trống và thụt lề 4 dấu cách. Hoặc đánh dấu nó và nhấp vào biểu tượng "Mã mẫu" (101010). – ChrisF

Trả lời

5

Điều này xảy ra do nút chrome được tích hợp vào mẫu mặc định cho điều khiển. Cách giải quyết duy nhất của bạn là định lại mẫu Button. This article sẽ giúp bạn bắt đầu.

+0

Cảm ơn đó là hoàn hảo Tôi cũng đã kiểm tra với một đồng đẳng của tôi và ông giới thiệu một bài báo từ StackOverflow với một giải pháp khác http://stackoverflow.com/questions/362993/wpf-template-binding-in-togglebutton-usercontrol Cảm ơn một lần nữa! – rlcrews

10

Đặt nút Focusable="False".

+1

sửa lỗi dễ dàng thay vì tái tạo khuôn mẫu – cab

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