Ho creato un Popup utilizzando il seguente codice, ma non riesco a capire come centrarlo
Ho provato a cambiare automaticamente il margine su runtime, ma non riuscivo a capire come farlo , ma qualcuno ha un'idea di come centrare il popup?
Non ha una causa standard dimensione ho bisogno di globalizzare il mio programmapopup centrale in XAML
<Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}" Name="MainGrid">
<Popup x:Uid="LoginPopup" IsOpen="True" Name="LoginPopup">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<TextBlock Margin="10" Grid.Column="0" Grid.Row="0" Text="App Name" Grid.ColumnSpan="2" Style="{StaticResource HeaderTextStyle}" />
<TextBlock Margin="10" Grid.Column="0" Grid.Row="1" Text="Username" Style="{StaticResource ResourceKey=SubheaderTextStyle}" />
<TextBox Margin="10" Grid.Column="1" Grid.Row="1" Name="InputUsername" />
<TextBlock Margin="10" Grid.Column="0" Grid.Row="2" Text="Password" Style="{StaticResource ResourceKey=SubheaderTextStyle}" />
<PasswordBox Margin="10" Grid.Column="1" Grid.Row="2" Name="InputPassword" />
<StackPanel Margin="10" Grid.Column="1" Grid.Row="3" HorizontalAlignment="Left" Orientation="Horizontal">
<Button Name="Login" x:Uid="LoginPopupLogin" />
<Button Name="Cancel" x:Uid="LoginPopupCancel" />
</StackPanel>
</Grid>
</Popup>
</Grid>
UPDATE
ho provato con la risposta di user1603313 di sotto, ma non ha fatto il trucco, come dice il la dimensione della griglia all'interno del popup è NaN.
Ho anche cercato di spostare il metodo nella rete, ma non ha fatto il trucco sia
Il metodo di cui sto parlando è questo con la griglia aggiornata correttamente
private void LoginPopup_Loaded_1(object sender, RoutedEventArgs e)
{
LoginPopup.HorizontalOffset = (Window.Current.Bounds.Width - gdChild.ActualWidth)/2;
LoginPopup.VerticalOffset = (Window.Current.Bounds.Height - gdChild.ActualHeight)/2;
}
Sarete pensa flyout. http://msdn.microsoft.com/en-us/library/windows/apps/hh465354.aspx –
@SinanErgin Mentre leggo, Flyouts è solo per HTML – The87Boy
ah, è vero. i flyout non possono essere usati xaml + C#/vb. Buoni funzionamenti;) –