2013-11-22 71 views
1

什麼屬性會使Popup控件在windows phone應用程序中完全顯示鼠標(在觸摸時在屏幕上手指位置上方的真實設備上)? 使用的XAML是WIndows phone 8彈出控件位置

<Grid Grid.Row="2"> 
     <phone:WebBrowser IsScriptEnabled="True" MouseMove="mainBrowserControl_MouseMove" x:Name="mainBrowserControl" /> 
     <Popup Name="ActionMenus" IsOpen="False"> 
      <StackPanel Orientation="Horizontal" Background="Black" > 
       <Button Name="btnA1" Click="btnAq_Click">Annotation</Button> 
       <Button Name="btnHq" Click="btnHq_Click">Highlight</Button> 
     </Popup> 
</Grid> 

而我用於顯示彈出代碼是

private void mainBrowserControl_MouseMove(object sender, System.Windows.Input.MouseEventArgs e) 
    { 
      ActionMenus.IsOpen = true; 
    } 

但是Popup的位置是網格的頂部。我怎樣才能讓它完全在鼠標指針上方(或用戶在屏幕上觸摸的位置)

在WPF彈出窗口中,我可以看到一些更多的屬性,如Placement,如果我們使用Placement =「Mouse」,則彈出窗口將完全顯示在鼠標上,但是這個屬性在Windows手機中是缺失的

回答

0

首先,如果您希望彈出窗口顯示在頁面的任何位置,您應該: 1)創建第二個網格,該網格不會有任何行或列上的內容(水平和垂直對齊設置爲伸展) - 這將是您的放置字段,將採取整個頁面。

OR

2)添加到彈出Grid.Row和Grid.Column跨度。

下一頁:

正如emedbo說,你應該抓住MouseDown事件並獲得MouseEventArgs座標。然後,你可以這樣做:

如果您選擇的方法1:

Popup pop = new Popup(); 
pop.Margin = new Thikness (X,Y,0,0) // To set margin left and top to show popups left top corner under the finger. 
Grid.Children.Add(pop); 
//Syntax maybe little incorrect, because i'm writting this from my mind 

如果您選擇的方法2:

Popup pop = new Popup(); 
pop.Margin = new Thikness (X,Y,0,0) // To set margin left and top to show popups left top corner under the finger. 
pop.*** //Here must be added Rowspan and Columnspan of the parent container 
Grid.Children.Add(pop); 
//Syntax maybe little incorrect, because i'm writting this from my mind 
+0

是否有任何安置= 「老鼠」 之類的選項avaialable的Windows手機8彈出控件? –

+0

我覺得不是.... – Cheese