画面のボタン押下でスクロールバーを上下に動かしたい
画面ブラウザを設置
xaml
<Button Click="UpBrowserButton_Click"/>
<Button Click="DownBrowserButton_Click"/>
<WebBrowser Name="browser" source="http://hoge.piyo" Height="800"/>
C#
private void UpBrowserButton_Click(object sender, RoutedEventArgs e)
{
mshtml.HTMLDocument doc = browser.Document as mshtml.HTMLDocument;
if (doc.IsNotNull() && doc.parentWindow.IsNotNull())
{
if (doc.frames.length == 0)
{
doc.parentWindow.scrollBy(0, -300);
}
else
{
// サイトがフレームで分かれている場合の処理
for (int i = 0; i < doc.frames.length - 1; i++)
{
var frame = doc.frames.item(i) as mshtml.HTMLWindow2Class;
frame.document.parentWindow.scrollBy(0, -300);
}
}
}
}
private void DownBrowserButton_Click(object sender, RoutedEventArgs e)
{
mshtml.HTMLDocument doc = browser.Document as mshtml.HTMLDocument;
if (doc.IsNotNull() && doc.parentWindow.IsNotNull())
{
if (doc.frames.length == 0)
{
doc.parentWindow.scrollBy(0, 300);
}
else
{
// サイトがフレームで分かれている場合の処理
for (int i = 0; i < doc.frames.length - 1; i++)
{
var frame = doc.frames.item(i) as mshtml.HTMLWindow2Class;
frame.document.parentWindow.scrollBy(0, 300);
}
}
}
}
上記の場合、フレームの数だけ処理してるけど、表示してるフレームだけ処理するほうがいいんやけどなー。
ちょっと力尽きたorz