2010-09-15 43 views
5

Tôi đang phát triển một ứng dụng WP7 và ứng dụng cần thay đổi biểu tượng của nút trên thanh ứng dụng cho trạng thái yêu cầu. Tôi đã thử:Thay đổi biểu tượng thanh công cụ của ứng dụng khi đang chạy

if (App.Servers[index].ServerState == "Enabled") 
{ 
    DetailsAppBar.btnStart.IconUri = new Uri("/AppBar/appbar.stop.rest.png"); 
} 

else 
{ 
    DetailsAppBar.btnStart.IconUri = new Uri("/AppBar/appbar.transport.play.rest.png"); 
} 

này không cho tôi một lỗi trong mã, nhưng nó không thể biên dịch .... bất kỳ gợi ý để làm điều này được đánh giá cao :)

nhờ

Trả lời

11

ApplicationBar là một điều khiển đặc biệt không hoạt động như các điều khiển Silverlight khác (xem Peter Torr's post on the subject). Một trong những hậu quả là các tên được đặt trong XAML cho các nút thanh ứng dụng tạo ra các trường trong mã-đằng sau luôn luôn là rỗng.

Tôi đoán rằng trong trường hợp của bạn, trường btnStart trong DetailsAppBar được đặt thành rỗng và do đó, cố gắng đặt kết quả thuộc tính IconUri của nó thành một NullReferenceException được ném.

Để truy cập vào một nút trong thanh ứng dụng, bạn phải tham chiếu nó bằng chỉ mục dựa trên số không trong danh sách nút. Ví dụ, đoạn code dưới đây trả về một tham chiếu đến nút thứ ba trên thanh ứng dụng:

button = (IApplicationBarIconButton)ApplicationBar.Buttons[2]; 
+0

yeah Tôi vừa tìm thấy ra :) cảm ơn –

8

figured it out ...

((ApplicationBarIconButton)ApplicationBar.Buttons[2]).IconUri = new Uri("/AppBar/appbar.stop.rest.png",UriKind.Relative); 

đã làm các trick :)

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