その2
http://blogs.wankuma.com/kazuki/archive/2008/01/26/119366.aspx
ずいぶん前に、WebBrowserコントロールの代わりに、Frameを使うといけた!って書いた。
でも、画像を表示しようとすると駄目だったのでションボリといった代物だった。
でも、.NET Framework 3.5/3.0のSP1から正真正銘WebBrowserが追加されたので悩む必要は無い。使い方も簡単で、XAMLでWebBrowserタグを使って画面に置くことが出来る。画面遷移はおなじみのNavigateメソッドでOK。ということで早速軽く試してみたよ。
テキストボックスとボタンとブラウザーを画面に配置。
<Window x:Class="WpfAnimationSample.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Browser">
<DockPanel>
<ToolBarTray DockPanel.Dock="Top">
<ToolBar>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<TextBox Name="textBoxUrl" MinWidth="250"/>
<Button Grid.Column="1"
Name="buttonNavigate"
Content="開く" Click="buttonNavigate_Click" />
</Grid>
</ToolBar>
</ToolBarTray>
<WebBrowser Name="browser" Navigated="browser_Navigated" />
</DockPanel>
</Window>
ボタンクリックで画面遷移をして、画面遷移完了とともにTextBoxに遷移先のURLを表示するようにしてみた。
using System;
using System.Windows;
using System.Windows.Navigation;
namespace WpfAnimationSample
{
public partial class Window1 : Window
{
public Window1()
{
InitializeComponent();
}
private void buttonNavigate_Click(object sender, RoutedEventArgs e)
{
browser.Navigate(new Uri(textBoxUrl.Text));
}
private void browser_Navigated(object sender, NavigationEventArgs e)
{
textBoxUrl.Text = browser.Source.ToString();
}
}
}
実行して動きを試してみよう。
URLを入力して開くボタンを押すと…
ばっちり表示される。
画像自体の表示やPDFとかFlash, SilverlightもOKだ。要はIEで表示できれば大丈夫そう。