2009-10-15 30 views
6

Chúng ta có một cơ chế làm xáo trộn mà đệ quy qua các trang XAML của chúng ta khi chúng tải, kiểm tra từng phần tử cho thuộc tính Thẻ và sử dụng giá trị của nó để lấy một tài nguyên chuỗi để áp dụng cho phần tử. Hiện tại, nó không hỗ trợ chú giải công cụ và chúng tôi phải có mã cụ thể trên mỗi trang để áp dụng các tài nguyên không hoạt động cho chúng. Tôi đang cố gắng thêm chức năng này vào cơ chế đệ quy của chúng tôi.Làm thế nào để truy cập chương trình ToolTipService của một Silverlight FrameworkElement?

Vì vậy, tôi đang đệ quy qua cây và cho mỗi phần tử là FrameworkElement, tôi muốn biết liệu nó có một ToolTipService hay không và nếu vậy liệu ToolTipService có một phần tử ToolTip hay không. Nếu có, tôi muốn truy xuất thuộc tính Thẻ nếu có và đặt thuộc tính Nội dung với giá trị tôi tra cứu bằng thẻ. Vấn đề của tôi là tôi không thể tìm ra cách để xác định xem có một tooltip và getaccess với nó hay không.

Đây là mẫu hiển thị phần tử, trong trường hợp này là Hình ảnh. Nếu tôi đang đệ quy thông qua cây và phần tử hiện tại là hình ảnh, làm thế nào để tôi có được ToolTip?

<Image x:Name="DateRangeSelectorButton" Grid.Column="0" Source="Images/OvalClock.png" Margin="2,0,2,0" Cursor="Hand"> 
    <ToolTipService.ToolTip> 
    <ToolTip Tag="dttlDateRangeSelectorButtonTooltip"/> 
    </ToolTipService.ToolTip> 
</Image> 

Trả lời

19

Sử dụng các accessor tài sản gắn liền: -

ToolTip tt = ToolTipService.GetToolTip(myFrameworkElement) As ToolTip; 
+0

Tuyệt vời. Đúng thứ tôi cần. Không nghĩ đến việc tìm kiếm các phương thức/thuộc tính tĩnh; chỉ nhìn vào các thuộc tính của phần tử mà tôi đang làm việc. Một cái gì đó để nhớ cho tương lai. –

+0

chúng không tĩnh, chúng được đính kèm thuộc tính phụ thuộc (đó là chúng được xác định bởi lớp khác, không phải là UIElement và chúng được gắn vào nó) –

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