Loading a Silverlight Page on a Existing Page - silverlight

I'm a Little bit new in Silverlight, so I'm checking if it posible to load a existing Silverlight Page (XAML) on another page, I'm not sure if something like and iframe or a panel control exists so i just tell it "Load this page" using their properties.
I will be waiting for your responses :)

You can just include it like any other control in XAML. No need for something like a frame.
<Grid x:Name="LayoutRoot" Background="White">
<!-- Load another page -->
<local:MyPage />
</Grid>

Related

How to add a WPF Web browser in Child window of MahApps.Metro.Controls form

I don't know whether it is possible or not.
I have tried many different methods but I am unable to solve.
I have a MetroWindow WPF form (MetroHamburgerMenu). I wants to add one wpf child window as a web browser to one of its control button.
The XAML for web browser as below:
<Grid
xmlns:Controls="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Grid>
<DockPanel>
<WebBrowser Name="WebBrowser" DockPanel.Dock="Left" Margin="50"
HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
</WebBrowser>
</DockPanel>
</Grid>
</Grid>
Fortunately, the child window is added, however the background is transparent so that the web page is not visible. I have added Google.com to web browser navigation.
Could you someone please guide how to correctly display the web page in child window?.
If question is not clear please let me know.
MainForm
Thanks all for your answer.
I have found the mistake why it was transparent. In the main form window AllowsTransparency property was set to True. Now I have change this property to False and I could see the web page visible.
It was very a silly mistake which I was unable to trace.

Push WindowsFormsHost element into the back

My wpf app has a "Open PDF" feature and I'm using PdfViewer from the PdfPrintingNet & PdfViewerNet libraries. My issue is that since my app can be windowed and resized the PDF viewer gets drawn in front of my scrollbars thus rendering the use of them moot and the layout looks awry. Is there a way where I can put my PDF window to the back and not drawn over my scrollbars?
Here is how I have my PDF view:
<!-- winforms host with embedded PDFPrint.net viewer -->
<WindowsFormsHost x:Name="_pdfViewerHost" Background="{DynamicResource {x:Static SystemColors.ControlBrushKey}}">
<pdfview:PdfViewer IsCalledFromWPF="True" />
</WindowsFormsHost>
This is caused due to how the WindowsFormsHost is rendered.
They call it the "airspace" problem.
It's always drawn on top of everything else, and there is no way you can change it unfortunately.
I would recommend finding a native WPF PDF viewer control.

Hide navigation buttons

I'm developing a WPF .NET 4.0 application.
When I moving from page to page, the navigation toolbar is showing.
But I really don't want to.
I every page I've set :
ShowsNavigationUI="False"
When I change the page, this is showing:
Any ideas ? thanks
Are you using a frame to navigate between pages? if so:
<Frame x:Name="mainFrame" Content="Frame" NavigationUIVisibility="Hidden"/>
Notice the NavigationUIVisibility set to Hidden.
-Edit: You can use this in .NET 4.0 (I have used it.)

How to host a WinForms user control in a wpf user control?

i have created a winforms user control and am able to successfully host it in a wpf window using the WindowsFormsHost control.
However when i try doing the same in a wpf user contol, the winforms control won't show up.
Following is the code i am using to host the windows form control using WindowsFormsHost.
<DockPanel LastChildFill="False">
<WindowsFormsHost Name="windowsFormsHost1" DockPanel.Dock="Top" />
</DockPanel>
windowsFormsHost1.Child = new WinFormChartUC();
Any help is appreciated in advance.
How about to enclose it fully in WindowsFormsHost element?
<WindowsFormsHost>
<local:WinFormChartUC x:Name="_WinFormChartUC"/>
</WindowsFormsHost>

How to display HTML in Silverlight application?

I would need to display some basic HTML (just some paragraphs, unordered lists and hyperlinks) in my Silverlight application. How would I go about that?
Which control to use?
Try this link for starters: http://www.wintellect.com/CS/blogs/jprosise/archive/2009/12/22/silverlight-4-s-new-html-hosting-support.aspx
Here is the relevant part:
Another of the new capabilities that Silverlight 4 brings to the
platform is the ability to host HTML content inside a Silverlight
control. This support isn't limited to static HTML content; the
content can be interactive and can include script. It can even be
Flash content or content that includes other Silverlight controls.
To host HTML content in Silverlight, you can use either a WebBrowser
control or an HtmlBrush. One way to display HTML content is to fire up
a WebBrowser control and point it to a URL:
<WebBrowser x:Name="WebBrowserControl" Source="http://www.bing.com" />
Another way to do it is to call NavigateToString and pass a string of
content to the WebBrowser control:
WebBrowserControl.NavigateToString("<h1>Hello, Silverlight</h1>");
HTML hosting is not available to in-browser apps (it applies to
out-of-browser applications only), and if an OOB lacks elevated
permissions, it can only display content that comes from the same
domain as the Silverlight application. However, you can use a little
trick to display cross-domain content in OOBs that run without
elevated permissions—simply pass an IFRAME targeting the remote
content to NavigateToString:
WebBrowserControl.NavigateToString("<iframe src=\"http://www.bing.com\" style=\"width: 100%; height: 100%\"></iframe>");
You can render HTML content with HtmlBrush, too. The following XAML
snippet paints a Rectangle with content retrieved from Bing:
<WebBrowser x:Name="WebBrowserControl" Source="http://www.bing.com" />
<Rectangle>
<Rectangle.Fill>
<HtmlBrush SourceName="WebBrowserControl" />
</Rectangle.Fill>
</Rectangle>
One difference between WebBrowser and HtmlBrush is that the former
displays "live" content, while the latter does not. Another difference
is that HtmlBrush can have transforms applied to it, while WebBrowser
cannot. For snazzy visual effects involving HTML content like the HTML
puzzle demoed at the PDC, you'll probably find yourself using
HtmlBrush. To display live, interactive content, you'll find
WebBrowser more useful instead.
One of the really cool things about the WebBrowser control is that you
can use its InvokeScript method to call JavaScript functions in
content hosted by the control. Conversely, JavaScript hosted inside a
WebBrowser control can use window.external.Notify to raise
ScriptNotify events that can be handled in C#.
You could use HtmlBrush or webbrowser control.

Resources