wpf: làm thế nào để hiển thị tooltip khi nút bị vô hiệu hóa bằng lệnh?


162

Tôi đang cố gắng hiển thị một chú giải công cụ bất kể trạng thái nút, nhưng điều này dường như không thực hiện được mẹo:

<Button Command="{Binding Path=CommandExecuteAction}" 
        ToolTip="{Binding Path=Description}" ToolTipService.ShowOnDisabled="true"
        Style="{StaticResource toolbarButton}">
   <Image Source="{Binding Path=Icon}"></Image>
</Button>

Làm cách nào tôi có thể hiển thị chú giải công cụ khi nút bị tắt do lệnh.CanExecute trả về sai?

Ghi chú:

ToolTipService.ShowOnDisables = "true" hoạt động như một bùa mê. Lý do điều này không hoạt động trong ví dụ của tôi là vì kiểu được liên kết với nút xác định lại bảng điều khiển và tắt kiểm tra nhấn vào nút khi nút bị tắt (IsHitTestVisible = false). Việc bật lại kiểm tra lần truy cập trong bảng điều khiển đã khiến chú giải công cụ xuất hiện khi nút bị tắt.


có thể trùng lặp khả năng hiển thị
OJ.

Tôi đang sử dụng ToolTipService.ShowOnDisables, nhưng nó không hoạt động.
Marius

1
Chỉ cần xóa câu hỏi này. Tôi đã thực hiện một dự án thử nghiệm nhỏ và ToolTipService.ShowOnDisables hoạt động tốt.
Marius

15
Tôi rất vui vì câu hỏi này đã không bị xóa. Nó đã trả lời nhanh chóng và chính xác một câu hỏi / vấn đề tôi gặp phải, đó là lý do chính xác khiến tôi đến với SO ngay từ đầu. Cảm ơn vì đã lười biếng (tm) Marius. :-)
Jere.Jones

Xin lỗi, có cách nào tôi chỉ có thể hiển thị khi bị vô hiệu hóa không?
advapi

Câu trả lời:



26

Đây là một phương pháp tốt để thêm vào mã khởi động của bạn

ToolTipService.ShowOnDisabledProperty.OverrideMetadata(
    typeof(Control),
    new FrameworkPropertyMetadata(true));

Bạn có thể giải thích điều này không? Nói rằng đó là một phương pháp tốt khi khởi động không giải thích.
Rabbi tàng

Nó đảm bảo rằng đối với bất kỳ lớp nào kế thừa từ Điều khiển, các chú giải công cụ được hiển thị ngay cả khi đối tượng Điều khiển bị tắt
thợ cắt tóc sacha

3
Thật là mỉa mai khi người dùng có nhu cầu lớn nhất về tooltip khi điều khiển bị vô hiệu hóa, vì họ muốn biết tại sao điều khiển bị vô hiệu hóa. Đây là một ví dụ điển hình về mặc định trong WPF không chính xác trong phần lớn thời gian. Vì vậy, nó đáng để thay đổi nó.
Contango

2

Hiển thị chú giải công cụ cho TẤT CẢ các Nút và Hộp kiểm bị vô hiệu hóa:

<Window.Resources>
    <Style TargetType="{x:Type Button}" BasedOn="{StaticResource {x:Type Button}}>
        <Setter Property="ToolTipService.ShowOnDisabled" Value="true"/>
    </Style>
    <Style TargetType="{x:Type CheckBox}" BasedOn="{StaticResource {x:Type CheckBox}}>
        <Setter Property="ToolTipService.ShowOnDisabled" Value="true"/>
    </Style>
</Window.Resources>

Việc BasedOn=...ngăn chặn bạn mất bất kỳ kiểu nào khác đã được áp dụng cho hộp kiểm hoặc nút trước đó. Nếu bạn không sử dụng bất kỳ kiểu nào khác cho nút hoặc hộp kiểm, bạn có thể xóa các BasedOn=..phần

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.