在Windows Phone 7的网络浏览器应用程序中,我在网格上创建了一个Web浏览器控件(在xaml.cs中)。之后我在网格上创建了一个图像。但是当我在模拟器中打开Web浏览器时,该图像不可见。这是一个标签式浏览器。 但是图像在网格中可见但在Web浏览器控件上不可见(调试应用程序后)。就像UC浏览器有这个东西。将以下图像放在网格上,图像可见,但在Web浏览器控件上,图像不可见。
在.xaml
<Grid x:Name="LayoutRoot">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<TextBox x:Name="UrlTextBox" Background="White" InputScope="URL" KeyDown="UrlTextBox_KeyDown" Margin="0,0,98,0" GotFocus="UrlTextBox_GotFocus" LostFocus="UrlTextBox_LostFocus" KeyUp="UrlTextBox_KeyUp"/>
<Grid x:Name="BrowserHost"
Grid.Row="1" GotFocus="BrowserHost_GotFocus">
<Image x:Name="Full" Source="Images/full.png" Height="60" Width="60" Margin="430,678,0,0" MouseEnter="Full_MouseEnter" Visibility="Visible" />
</Grid>
在Xaml.cs中
private void ShowTab(int index)
{
this.currentIndex = index;
UrlTextBox.Text = this.urls[this.currentIndex] ?? "Search";
if (this.browsers[this.currentIndex] == null)
{
WebBrowser browser = new WebBrowser();
this.browsers[this.currentIndex] = browser;
BrowserHost.Children.Add(browser);
browser.IsScriptEnabled = true;
}
for (int i = 0; i < NumTabs; i++)
{
if (this.browsers[i] != null)
{
this.browsers[i].Visibility = i == this.currentIndex ? Visibility.Visible : Visibility.Collapsed;
}
}
}
我需要在我的网络浏览器控件中使用该图像。有人能帮助我吗?
提前感谢您的辛勤工作!
答案 0 :(得分:1)
在一个全新的应用程序中,在MainPage.xaml中我替换了
<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0"></Grid>
与
<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
<phone:WebBrowser x:Name="theBrowser" />
<Image Source="/Background.png"
Stretch="None"
HorizontalAlignment="Left"
VerticalAlignment="Bottom" />
</Grid>
然后在页面构造函数中我添加了
theBrowser.Navigate(new Uri("http://stackoverflow.com/"));
这导致显示如下:
这证明它非常合理。
不幸的是,您的问题(XAML)中的不完整样本和与您的实际问题无关的代码(.cs)使您很难确切地说为什么无法使其工作。
此外,请先阅读http://tinyurl.com/so-hints,然后再发帖,并以便于人们帮助您的方式提出未来问题。
答案 1 :(得分:0)
当您在代码中添加浏览器控件时,您将它放在图像的顶部。您需要Grid中的容器来保存控件。不过,最终,您应该尝试按照Matt Lacey所示的方式在XAML中设置它。
如果你想尝试这个你的方式,你需要这样的东西:
<Grid x:Name="LayoutRoot">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<TextBox x:Name="UrlTextBox" Background="White" InputScope="URL" KeyDown="UrlTextBox_KeyDown" Margin="0,0,98,0" GotFocus="UrlTextBox_GotFocus" LostFocus="UrlTextBox_LostFocus" KeyUp="UrlTextBox_KeyUp"/>
<Grid x:Name="BrowserHost"
Grid.Row="1" GotFocus="BrowserHost_GotFocus">
<Grid x:Name="BrowserHolder"/>
<Image x:Name="Full" Source="Images/Full.png" Height="60" Width="60" Margin="430,678,0,0" MouseEnter="Full_MouseEnter" Visibility="Visible" />
</Grid>
</Grid>
注意添加Grid“BrowserHolder”。由于首先添加了那个,因此添加到该控件的任何内容都会出现在图像后面。
所以你的代码变成了:
private void ShowTab(int index)
{
this.currentIndex = index;
UrlTextBox.Text = this.urls[this.currentIndex] ?? "Search";
if (this.browsers[this.currentIndex] == null)
{
WebBrowser browser = new WebBrowser();
this.browsers[this.currentIndex] = browser;
// NOTE: Changed to BrowserHolder
BrowserHolder.Children.Add(browser);
browser.IsScriptEnabled = true;
}
for (int i = 0; i < NumTabs; i++)
{
if (this.browsers[i] != null)
{
this.browsers[i].Visibility = i == this.currentIndex ? Visibility.Visible : Visibility.Collapsed;
}
}
}