1

如何在 wp7 的网格(命名为 Holder)上方创建边框?我尝试的是,当我将网格创建为全屏并在屏幕顶​​部创建边框后,但是当我调试它时,边框不可见。谁能帮我这个?提前感谢您的辛勤工作!

<Grid x:Name="BrowserHost" GotFocus="BrowserHost_GotFocus" Grid.RowSpan="2">

<StackPanel x:Name="Stack" Background="Transparent">
        <Border x:Name="Border" Background="{StaticResource PhoneAccentBrush}">
            <TextBox x:Name="UrlTextBox" KeyDown="UrlTextBox_KeyDown" Background="White" Margin="0,0,98,0">
        </Border>
</StackPanel>

主页 xaml.cs

public partial class MainPage : PhoneApplicationPage
{
    private const int NumTabs = 4;

    private int currentIndex;
    private string[] urls = new string[NumTabs];
    private WebBrowser[] browsers = new WebBrowser[NumTabs];

    public MainPage()
    {
        InitializeComponent();
        ShowTab(0);
    }

    private void ShowTab(int index)
    {
        this.currentIndex = index;
        UrlTextBox.Text = this.urls[this.currentIndex] ?? "";
        if (this.browsers[this.currentIndex] == null) 
        {
            WebBrowser browser = new WebBrowser();
            this.browsers[this.currentIndex] = browser;
            BrowserHost.Children.Add(browser);
        }
        for (int i = 0; i < NumTabs; i++) 
        {
            if (this.browsers[i] != null) 
            {
            this.browsers[i].Visibility = i == this.currentIndex ? Visibility.Visible : Visibility.Collapsed;
        }
    }
}

private void UrlTextBox_KeyDown(object sender, KeyEventArgs e)
{
    if (e.Key == Key.Enter) 
    {
        Uri url;
        if (Uri.TryCreate(UrlTextBox.Text, UriKind.Absolute, out url)) 
        {
            this.urls[this.currentIndex] = UrlTextBox.Text;
            this.browsers[this.currentIndex].Navigate(url);
        }
        else
            MessageBox.Show("Invalid url");
    }
}

但是在我调试之后,边框和 UrlTextBox 都不可见。

图片:

这是我想发布的图像

我将 GotFocus 事件用于 BrowserHost 网格。这意味着,当我触摸网格(BrowserHost)时,UrlTextBox 和边框应该被折叠(我得到了这个东西)。我需要的是 BrowserHost 应该在 Border 和 UrlTextBox 折叠后达到全屏。但对我来说,这并没有发生。请看下图。当用户触摸 BrowserHost 时,我想让 BrowserHost 全屏显示。我希望用 BrowserHost 填充空白空间。

在此处输入图像描述

4

1 回答 1

0

您需要为边框指定 BorderBrush 和 BorderThickness 属性,如下所示

<Border Background="LightBlue" 
    BorderBrush="Green" 
    BorderThickness="2" >

更新:还将 Grid.Row="0" 设置为您的堆栈面板。

然后修改你的cs代码

WebBrowser browser = new WebBrowser();
browser.Height = 400;
Grid.SetRow(browser, 1);
BrowserHost.Children.Add(browser); 
于 2012-06-01T17:12:37.483 回答