2012-06-01 120 views
1

如何在wp7的網格上創建一個邊框(命名爲Holder)?我試過的是,當我創建網格到全屏幕,並且在我創建屏幕頂部的邊框後,但是當我調試它時,邊框不可見。誰能幫我這個?預先感謝您的辛勤工作!windows phone 7的邊框

<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是可見的。

圖片:

Here's an image I wanted to post

我用於BrowserHost網格GotFocus事件。這意味着,當我觸摸網格(BrowserHost)時,UrlTextBox和邊框應該摺疊(我得到了這個東西)。我需要的是BrowserHost應該在Border和UrlTextBox合攏後達到全屏。但對我而言,這並沒有發生。請看下面的圖片。當用戶觸摸BrowserHost時,我想讓全屏的BrowserHost。我想要用BrowserHost填充空白空間。

enter image description here

+0

您可能需要指定大小的邊界,否則就可能爲0(因此不可見) – matt5784

+1

的寬度來實現你有什麼樣的是處理邊界? – Mac

+0

你的邊框線應該讀取'' – matt5784

回答

0

您需要爲邊境指定BorderBrush和性能了borderThickness,這樣

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

更新: 還成立Grid.Row = 「0」 到你的StackPanel。

然後修改你的CS代碼

WebBrowser browser = new WebBrowser(); 
browser.Height = 400; 
Grid.SetRow(browser, 1); 
BrowserHost.Children.Add(browser); 
+1

那沒用!你有沒有處理邊界的樣本? – Mac

+0

我測試此代碼,它的工作對我罰款(顯示爲文本框 – nkchandra

+0

在WP7應用程序的默認顏色方案使用黑色的'BorderBrush'將基本上是無形的邊界。改變顏色和邊框將會出現。 –