2011-07-31 45 views

Trả lời

3

Tôi thích câu hỏi này! Nó chỉ ra một yêu cầu rõ ràng khác mà microsoft không hỗ trợ với các ứng dụng OOB. Đáng buồn thay, điều này không được hỗ trợ trực tiếp như một phần của API Silverlight hiện tại. Nhưng có nói rằng chúng tôi có thể "khám phá" đạt được điều này ... (những lời khuyên dưới đây có thể/có thể không hoạt động như bản thân tôi chưa thử nghiệm chúng do thiếu môi trường Visual Studio hiện tại trên máy của tôi!)

In a ứng dụng Silverlight OOB, lớp Ứng dụng cho thấy phương thức "Cài đặt" thực thi khi chúng tôi chọn cài đặt ứng dụng OOB.

Trong phương pháp này, bạn có thể thử cài đặt (sử dụng đặc quyền nâng cao) của điều khiển ActiveX tùy chỉnh của bạn (ứng dụng cửa sổ) nói MySilverlightHost. Ứng dụng này là gì, nhưng một Windows Form có một máy chủ Silverlight trong đó.

Có! Bạn nghe tôi nói đúng. Anh chàng này (http://firstfloorsoftware.com/blog/hosting-silverlight-outside-the-browser/) đã triển khai một máy chủ lưu trữ Silverlight dựa trên biểu mẫu Windows tùy chỉnh.

Bây giờ khi OOB của bạn được cài đặt, tệp XAP được triển khai vào hệ thống của bạn sẽ là nguồn cho ứng dụng ActiveX và sẽ lưu trữ nội dung của nó trong Kiểm soát máy chủ Silverlight của nó. Và bởi vì nó là một ứng dụng cửa sổ, nó có thể được cấu hình để ở trong khay hệ thống.

Hãy cho tôi biết nếu điều này hướng dẫn bạn đúng hướng.

+1

Bạn muốn xây dựng ứng dụng ActiveX theo ngôn ngữ/nền tảng nào? C++ trên Native Runtime? C# trên .NET? VB6 có lẽ? BTW có rất nhiều tính năng đặc trưng của cửa sổ mà Silverlight "không" hỗ trợ và có nhiều dev phát triển khó chịu rằng Silverlight không hỗ trợ "yêu cầu rõ ràng" đơn giản như vậy. Tất cả họ sẽ hạnh phúc hơn rất nhiều nếu Microsoft cung cấp một API hỗ trợ tất cả các tính năng này. Oh, chờ đã, họ có tên là .NET WPF. – AnthonyWJones

+1

Có Anthony Tôi biết WPF sẽ làm tất cả những điều này cho chúng tôi ... nhưng theo câu hỏi này là dành riêng cho OOB và vì không có sự hỗ trợ để cài đặt OOB như một ứng dụng cửa sổ chuẩn là điều khiến nó thiếu tất cả các tính năng như vậy. Hãy tưởng tượng nếu có cơ sở như vậy thì OOB sẽ là một hit lớn hơn nó ngay bây giờ! Và một lần nữa, tôi đã nói đây chỉ là một hướng dẫn hay ý tưởng. Tôi đã không làm việc về điều này và không biết nếu những lời khuyên tôi đã cung cấp này sẽ làm việc. Tôi đã nói rằng trong phần đầu của câu trả lời. Tôi không cố gắng tạo ra một cuộc tranh luận ở đây. –

+1

Vì Silverlight 5 mở rộng các tính năng của mô hình 'Ứng dụng tin cậy' (gọi mã không được quản lý hiện có trực tiếp từ bên trong Silverlight với PInvoke), bây giờ bạn có thể giảm thiểu các ứng dụng OOB xuống khay, xem: microsoft.com/silverlight/future/#trusted Có thể ai đó xác nhận điều này? – Mike

1

Điều này là không thể. Không có API nào có sẵn cho Silverlight để hỗ trợ điều này.

0

Có thể thực hiện được thông qua Microsoft Native Extensions cho Silverlight (NESL). ref: http://archive.msdn.microsoft.com/nesl

Lấy từ url này: Phiên bản hiện tại của NESL cung cấp quyền truy cập vào các tính năng của Windows 7 như Cảm biến, Thiết bị di động, Bài phát biểu, Thanh tác vụ và hơn thế nữa.

+0

Trên SO, khi cung cấp một liên kết đến một trang bên ngoài, tốt nhất nên đưa ra ít nhất một bản tóm tắt cấp cao về nội dung trong trường hợp liên kết bên ngoài thay đổi hoặc bị xóa. Khách truy cập SO trong tương lai sẽ vẫn có * thứ gì đó * để làm việc cùng. – Fluffeh

0
Private Sub FullScr(sender As Object, e As MouseEventArgs) 
    Application.Current.Host.Content.IsFullScreen = True 
End Sub 

Private Sub Nrml(sender As Object, e As MouseEventArgs) 
    Application.Current.Host.Content.IsFullScreen = False 
End Sub 

Private Sub Min(sender As Object, e As MouseEventArgs) 
    Application.Current.MainWindow.WindowState = WindowState.Minimized 
End Sub 
Các vấn đề liên quan