2011-12-16 32 views
11

Có thể truy cập tất cả các mục WPF từ dự án winforms khi chọn "thêm mục mới" trong VS 2010 không? Tôi chỉ có quyền truy cập vào WPF userControl theo mặc định.

Tôi muốn thêm một cửa sổ WPF vào một dự án winforms. Không chỉ kiểm soát người dùng.Thêm WPF Window vào dự án Winforms trong VS 2010

EDIT: Câu trả lời ngắn: Đây dường như không thể cho mỗi gia nhập, nhưng nó có thể để thêm nguồn lực WPF và các tài liệu tham khảo cần thiết bằng tay.

+1

Kiểm tra http://stackoverflow.com/questions/450377/upgrading-a-winforms-app-to-wpf – Atomosk

Trả lời

6

Dường như bạn không thể trực tiếp, nhưng những gì bạn có thể làm là thêm điều khiển người dùng mới và sau đó sửa đổi mã để biến nó thành Cửa sổ. Đơn giản chỉ cần tạo một dự án WPF mới, thêm một cửa sổ và xem những gì bạn cần thay đổi để biến điều khiển người dùng của bạn thành một cửa sổ.

+0

Tôi đã nghĩ đến việc đó nhưng tôi mong đợi nó không đơn giản và một chút kéo tóc, vì vậy tôi thậm chí không thử :-) Tôi sẽ cho nó một shot –

+0

Vâng, các bước đầu tiên sẽ là thay thế thẻ UserControl bằng thẻ Window trong XAML và làm cho lớp mở rộng Window. Sau đó xem những gì khác. – Tudor

+0

Đây có lẽ là giải pháp tốt nhất, và được giải thích ở đây từng bước: http://www.i-think22.net/archives/2008/08/05/adding-wpf-windows-to-an-existing-windows-form -project/ – surfen

4

Theo tôi tùy chọn "sạch" đang sử dụng chương trình này:

  1. Tạo dự án WPF (thêm bất kỳ cửa sổ WPF nào bạn cần). Hãy gọi nó là "WPFProject"
  2. Trong cùng một giải pháp tạo dự án WinForms (thêm bất kỳ Biểu mẫu nào bạn cần cần). Cho phép gọi nó là "MainProject".
  3. Trong MainProject thêm tài liệu tham khảo để:

    • WPFProject
    • PresentationCore
    • PresentationFramework

Thats tất cả, bây giờ bạn có thể mở cửa sổ WPF của bạn từ MainProject của bạn (ví dụ. bằng cách nhấn một nút):

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
     Dim mywpfform = New WPFProject.MainWindow //MainWindow is the default name of your first WPF window. Obviously you can open any other 
     mywpfform .Show() 
End Sub 
+0

không hiểu downvote, nó là làm việc cho tôi ... –

+2

Downvoting mà không giải thích là điều rudest có thể xảy ra trên SOF, thật không may –

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