2012-01-28 11 views
8

Tôi có một ứng dụng mà tôi đang sử dụng XAML để đại diện cho biểu đồ đối tượng tùy chỉnh của riêng tôi. Nó hoàn toàn khác với mô hình đối tượng WPF/Silverlight (và không được sử dụng cho thiết kế giao diện người dùng), nhưng có thể trực quan hóa đồ thị đối tượng theo cách có ý nghĩa. Những gì tôi muốn làm là thêm một phần mở rộng thiết kế để Visual Studio để hình dung các đối tượng cụ thể của tôi, nhưng tôi đã gặp khó khăn khi tìm kiếm thông tin về chủ đề này. Ai có thể chỉ cho tôi đi đúng hướng không?Visual Studio Custom XAML Designer

Mục tiêu chính của tôi là có một số phản hồi trực quan đơn giản về XAML hiện tại; Tôi chưa đến điểm mà tôi cần nhà thiết kế để hỗ trợ chỉnh sửa trực quan. Nếu ai đó tò mò, đó là một công cụ để mô phỏng máy móc công nghiệp; Tôi sử dụng XAML để xác định các thành phần của máy và các kết nối của chúng, nhưng hiện tại tôi phải chạy mô phỏng đầy đủ để xem máy trông như thế nào.

Trả lời

11

Bạn cần tạo tiện ích Visual Studio (vsix) phân tích tệp và trực quan hóa nội dung. Bạn có hai tùy chọn, một Visual Studio Add-In hoặc một gói Visual Studio (xem chi tiết về sự khác biệt trong câu hỏi 1139294). Việc đầu tiên là hơi dễ dàng hơn để bắt đầu, nhưng sau này sẽ cung cấp cho bạn kiểm soát nhiều hơn vì vậy tôi khuyên bạn nên nó nếu bạn có chỉnh sửa trong tâm trí trong tương lai.

Bắt đầu bằng cách tải xuống SDK để tạo tiện ích Visual Studio, còn gọi là Visual Studio 2010 SP1 SDK. Đối với phiên bản không phải SP1 cũ hơn, hãy nhấp vào here.

Bạn cần tự làm quen với việc tạo gói Visual Studio. Để có hướng dẫn của Microsoft, hãy xem Walkthrough: Creating a VSPackage. Nếu bạn làm theo hướng dẫn, bạn cần có mọi thứ cần thiết để kích hoạt thành phần tùy chỉnh từ lệnh menu. Vì vậy, bây giờ tất cả các bạn thực sự cần là một ví dụ một thành phần WPF bình thường có thể phân tích/hình dung XAML tùy chỉnh của bạn. Bạn cũng có thể cần phải liên kết loại tệp tùy chỉnh của mình với thành phần của bạn. Đối với điều này bạn cần một ProvideEditorExtensionAttribute.

Chẳng gì bằng mẫu, vì vậy hãy xem The IDE Sample Editor từ samples library. Điều này tạo ra một loại tệp trình chỉnh sửa tệp tùy chỉnh nhỏ, gần với những gì bạn đang yêu cầu. Thay thế thành phần trình chỉnh sửa tệp và loại tệp được liên kết với trình chỉnh sửa của bạn và bạn sắp hoàn tất!

+4

+1 cho "bạn sắp hoàn tất!" – RQDQ

+0

Cảm ơn, điều này giúp chỉ cho tôi đúng hướng. Trường hợp của tôi hơi khác (vì tôi không có định dạng tệp tùy chỉnh; nó vẫn là phần mở rộng * .xaml và vẫn biên dịch thành một lớp, với tệp mã sao lưu, giống như bất kỳ lớp xaml nào khác.) Tuy nhiên, đây vẫn là khá hữu dụng. –

+0

Vâng, điều thú vị là - trong một dự án Silverlight, VS biết cách render một .xaml một cách, và trong một dự án WPF VS biết cách render nó theo một cách khác - Có thể có một số phép thuật mẫu dự án mà bạn có thể làm "cho dự án loại-x sử dụng * nhà thiết kế * này cho xaml", v.v ... – BrainSlugs83