2009-01-25 40 views
5

Tôi có một khung với các điều khiển người dùng được sắp xếp trên đó. Khi một chú giải công cụ được gán cho usercontrol hoặc một trong các con của nó, chú giải công cụ đó không hiển thị (sự kiện mở cũng không được kích hoạt). Tôi không vô hiệu hóa một cách rõ ràng bất kỳ người trong số họ.Chú giải công cụ wpf không được hiển thị trên usercontrol hoặc các con của nó

Tôi đã đặt nhiều chú giải công cụ ở nơi khác trong ứng dụng và tất cả đều hiển thị, ngoại trừ các chú giải công cụ trên usercontrol mà tôi đã tạo.

Bất kỳ ý tưởng nào?

Hierarchy là khoảng như sau:

<Grid> 
<Canvas> 
    <UserControl> 
    <Canvas> 
    <Line/> 
    <Rectangle/> 
    </Canvas> 
    </UserControl> 
</Canvas 
</Grid> 

Trả lời

2

Cuối cùng tôi đã tìm ra. Trên canvas của tôi, tôi vẽ các đường con trỏ (ngang và dọc để hiển thị trên lưới nơi tôi và các giá trị ở bên trái/dưới), nó chỉ ra rằng khi kiểm tra hit được thực hiện, nó đã đánh những dòng đó và dừng lại. Bằng cách đặt IsHitTestVisible thành false trên tất cả các hình học không liên quan, chú giải công cụ của tôi giờ đây hiển thị chính xác.

Lý do tôi thấy sự kiện nhập/rời chuột là do khi di chuyển con trỏ, các đường sẽ kéo 1 khung phía sau và do đó cho phép chuột vào/ra nhưng không di chuyển.

Điều này giải quyết được sự cố của tôi.

4

Nếu nền của usercontrol là x: Null, sau đó các sự kiện chuột sẽ giảm thông qua các nội dung cơ bản. Bạn có thể sử dụng "Minh bạch" để đảm bảo các sự kiện chuột đi đến usercontrol.

Hành vi này không phải là duy nhất đối với liên kết người dùng; đó là hành vi chung cho tất cả WPF. Trong ví dụ của bạn, giả sử bạn có điền vào các phần tử con, bạn sẽ có thể di chuột qua các phần tử đó và xem các chú giải công cụ mà bạn đã đặt.

0

Tôi đã gặp sự cố này ban đầu khi tôi thử nghiệm trong canvas gốc của tôi, hình chữ nhật của tôi không hiển thị chú giải công cụ khi nền trống. Tuy nhiên, điều này không giải quyết được vấn đề cho điều khiển người dùng. Tôi đã thử một nền trong suốt cho cả điều khiển người dùng và khung bên trong nó, hình chữ nhật bên trong khung bên trong đó có nền đen và không may mắn: chú giải công cụ sẽ không mở.

Tôi đã cố gắng đặt chú giải trên canvas gốc và nó thực sự xuất hiện nhưng không hiển thị trên điều khiển người dùng con cá nhân cũng như canvas/trẻ em bên trong của chúng, mặc dù chúng có bộ nền/điền.

Ngoài ra, việc đặt sự kiện MouseEnter cho thấy rằng nó thực sự kích hoạt khi con chuột vào khung bên trong, tuy nhiên, chú giải công cụ sẽ không bật.

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