2012-07-30 22 views
1

所以我有一個正常的AppBar在C#metro應用程序中工作,但問題是我需要應用程序來顯示一個html頁面。我創建了一個WebView,它佔據了頁面寬度和高度的100%,通過這樣做,AppBar不再出現在右鍵和邊緣滑動上。有沒有一種方法讓AppBar能夠使用這樣的WebView?如何在Metro中使用WebView創建AppBar?

--Resolved--

我最終什麼事做的是將各地的WebView 1px的邊框,使刷卡可以被檢測到。由於我包含在WebView中的內容會隨着時間的推移而動態變化,所以WebViewBrush並不適合我。相反,當AppBar打開時,我縮小了WebView的大小,然後在關閉時展開它。

回答

2

沒有試圖偷菲利普的答案,但我認爲一些更多的細節是必要的,以完全回答這個問題。

即使WebView全屏運行,AppBar也會嘗試在右鍵單擊或滑動時顯示自身。您可以通過訂閱AppBar.Opened事件來證明這一點。有趣的是,AppBar似乎以某種方式知道它被遮擋並自動關閉。即使它本身沒有關閉,你也無法看到它,因爲它在WebView下被遮蔽了。

Filip在隱藏WebView和在AppBar打開時使用WebViewBrush的想法是正確的。你可以找到這樣做,這裏的一個很好的例子:

http://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.controls.webviewbrush.aspx

至於何時的WebView和WebViewBrush之間的交換,我只是做它AppBar.Opened和扭轉它AppBar.Closed。 AppBar是輕度開除,意味着只要您點擊客戶區域外的任何地方,它就會關閉。

建議的最後一句話:在我的測試中,有時似乎是輕掃手勢被吞噬。當我在WebView的頂部和底部放置1像素邊框時,這個問題似乎消失了。你的旅費可能會改變。

+0

謝謝! 1像素邊界有助於實現這一目標。 – 2012-08-01 01:49:32

+0

當用戶用鼠標右鍵點擊鼠標來顯示appbar時,它是否工作?在我的應用程序中,滑動手勢正在工作,但使用鼠標時,應用程序立即打開和關閉 – MatthieuGD 2012-12-01 14:12:27

1

您需要在顯示XAML UI的同時隱藏WebView,並使用WebViewBrush代替。

0

如上所述,1px邊框可以幫助確保AppBar的頂部/底部滑動。不過,與@matthieu類似,我仍然遇到了使用鼠標和右鍵單擊方法時可靠地打開AppBar的問題。

的問題是,我包括XAML元素作爲對等方的WebView,而不是父母的MSDN reference for AppBar.Closed提示:

<Border BorderBrush="Gray" BorderThickness="2" Margin="100,20,100,20"> 
    <Grid> 
     <WebView x:Name="contentView" Source="http://www.contoso.com"/> 
     <Rectangle x:Name="contentViewRect"/> 
    </Grid> 
</Border> 

如果我申請了邊境這樣,AppBar也可靠地打開與鼠標。

最後要注意的是,使用BorderBrush="Transparent"也可以正常工作,所以您不必真正看到醜陋的邊框。我最後的XAML是這樣的:

<Border BorderThickness="0,1,0,1" BorderBrush="Transparent"> 
    <Grid> 
     <WebView x:Name="WebView"></WebView> 
     <Rectangle x:Name="RectWebViewBrush"></Rectangle> 
    </Grid> 
</Border> 
相關問題