2014-01-19 80 views
0

我正在爲使用c#/ xaml的windows store開發應用程序。在XAML的窗口右上角放置彈出窗口

的XAML:

 <Popup x:Name="EditQuantityPopup" 
      x:Uid="EditQuantityPopup" 
      AutomationProperties.AutomationId="EditQuantityPopup" 
      IsLightDismissEnabled="True" 
      IsOpen="{Binding IsEditPopupOpened, Mode=TwoWay}"> 
     <Grid x:Name="PopupPanel" 
       Background="{StaticResource ApplicationPageBackgroundThemeBrush}" 
       Opacity=".9" 
       Height="100" 
       Width="230"> 


      <Grid x:Name="ContentPopupGrid" 
        Grid.Row="1" 
        Margin="20,0,10,15"> 
       <Grid.ColumnDefinitions> 
        <ColumnDefinition Width="Auto" /> 
        <ColumnDefinition Width="10"/> 
        <ColumnDefinition Width="Auto" /> 
        <!--<ColumnDefinition />--> 
       </Grid.ColumnDefinitions> 

       <TextBlock Grid.Column="0" 


         Text="{Binding Text}" 
          VerticalAlignment="Center" 
         TextTrimming="WordEllipsis" 
         FontSize="15" 
         Foreground="White"></TextBlock> 
       <ProgressRing Grid.Column="2" IsActive="{Binding LoadingData}" Height="75" Width="75"></ProgressRing> 

      </Grid> 
     </Grid> 
    </Popup> 

代碼放置在底部應用欄的頂部彈出式視窗:

 private void EditQuantityPopup_Opened(object sender, object e) 
    { 
     int margin = 10; 
     int appbarHeight = 90; 
     EditQuantityPopup.HorizontalOffset = margin; 
     EditQuantityPopup.VerticalOffset = Window.Current.CoreWindow.Bounds.Bottom - appbarHeight - PopupPanel.Height - margin; 
    } 

如何更改代碼,彈出應放置在窗口的右上角的?

+0

這不是工作 - '<彈出佈局= 「右」/>'? –

+0

我收到錯誤:「成員」Placement「無法識別。 – WIN8

回答

0

這取決於佈局類型或類型住房你的彈出元素。試試這個

EditQuantityPopup.HorizontalAlignment = Windows.UI.Xaml.HorizontalAlignment.Right; 
EditQuantityPopup.VerticalAlignment = Windows.UI.Xaml.VerticalAlignment.Top; 

除了上面的內容,根據您的設置,您可能需要將PopUp元素移動到網格中的新列。例如

Grid.SetColumn(EditQuantityPopup, [your column number]); 

如果它在一個畫布,你可以使用

var left = Window.Current.Bounds.Width - EditQuantityPopup.ActualWidth; 
Canvas.SetLeft(EditQuantityPopup, left); 
Canvas.SetTop(EditQuantityPopup, 0); 

希望幫助