2012-02-28 22 views
6

Tôi muốn hiển thị các mẩu HTML trên biểu mẫu của tôi. Tôi đã xem xét một vài ví dụ trực tuyến về việc sử dụng biểu mẫu web hoặc bố cục tài liệu, v.v. và không có gì phù hợp với tôi.Hiển thị các mẩu HTML trên mẫu WPF

Chúng tôi có một hệ thống trên trang web của chúng tôi nơi người dùng có thể nhập thông báo bằng Trình chỉnh sửa văn bản thực (CKEditor). Tin nhắn được lưu trong DB và một ứng dụng WPF trên tất cả các máy tính trong văn phòng sẽ hiển thị thông báo.

Tôi muốn hỗ trợ HTML trong chương trình WPF của mình. HTML không nằm trong một trang, đó là một đoạn mã HTML trong db cần được hiển thị trong biểu mẫu được hiển thị trên ứng dụng WPF.

Ví dụ: nếu ai đó nhập <img src="http://www.google.com/google.jpg" />, nó sẽ hiển thị hình ảnh trong ứng dụng wpf khi tôi truy xuất hình ảnh từ cơ sở dữ liệu và hiển thị nó trên biểu mẫu.

Cách tốt nhất để làm điều này là gì?

P.S. Tôi không thể sử dụng trình duyệt web vì Windows có "AllowTranparency" được đặt thành true.

+2

Có nhìn vào một [ 'WebBrowser '] (http://msdn.microsoft.com/en-us/library/system.windows.controls.webbrowser.aspx) kiểm soát? – ChrisF

+0

Vâng tôi đã chỉnh sửa. Cửa sổ chính có độ cho phép nên tôi không thể sử dụng webBrowser – Eitan

Trả lời

6

Thêm một điều khiển WebBrowser để ứng dụng của bạn:

<Window x:Class="WpfBrowser.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     Title="MainWindow" Height="350" Width="525"> 
    <Grid> 
     <WebBrowser Height="311" HorizontalAlignment="Left" Name="webBrowser1" VerticalAlignment="Top" Width="503" /> 
    </Grid> 
</Window> 

Và sau đó sử dụng NavigateToString của WebBrowser để tải trang từ chuỗi html của bạn: bạn

webBrowser1.NavigateToString("<html><head></head><body>First row<br>Second row</body></html>"); 
+0

Điều kỳ lạ là tôi đã làm điều đó. Ví dụ của bạn hoạt động nhưng trên biểu mẫu của tôi trình duyệt không hiển thị bất kỳ thứ gì, nó hoàn toàn trắng nhưng khi tôi nhấp phải, tôi có thể xem nguồn và xem HTML bạn đã đặt ở trên. – Eitan

+0

@Eitan: Vui lòng cung cấp ví dụ về mã bạn đã sử dụng: xaml và mã phía sau. Tôi gọi là 'NavigateToString' trong hàm tạo MainWindow ngay sau' InitializeComponent(); 'và nó hoạt động. –

+0

Vâng, tôi tìm ra lý do tại sao nó không hoạt động, tôi có một hình ảnh động làm mờ chương trình. Để làm được điều này, tôi cần đặt Allow Transparency thành true. Khi tôi thực hiện trình duyệt web, nó không hoạt động khi AllowTransparency = true – Eitan

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