1

wp7のグリッド(ホルダーと呼ばれる)の上に境界線を作成する方法は? 私が試したのは、グリッドをフルスクリーンに作成し、画面の上部に境界線を作成した後、デバッグすると境界線が表示されないことです。誰でもこれで私を助けることができますか?お疲れ様でした!

<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>

MainPage 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 も表示されません。

画像:

載せたかった画像はこちら

BrowserHost グリッドには GotFocus イベントを使用しました。つまり、グリッド (BrowserHost) に触れると、UrlTextBox と境界線が折りたたまれている必要があります (私はこのことを取得しました)。そして、私が必要としているのは、Border と UrlTextBox が折りたたまれた後に、BrowserHost が全画面表示になることです。しかし、私にとってはそうではありません。下の画像をご覧ください。ユーザーが BrowserHost に触れたときに、BrowserHost を全画面表示にしたいと考えています。空きスペースを BrowserHost で埋めたい。

ここに画像の説明を入力

4

1 に答える 1

0

このように、Border の 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 に答える