C# 如何在c中居中显示Metro风格应用程序中的弹出窗口#
有没有办法在Windows 8中显示弹出窗口 将C# 如何在c中居中显示Metro风格应用程序中的弹出窗口#,c#,popup,microsoft-metro,windows-runtime,center,C#,Popup,Microsoft Metro,Windows Runtime,Center,有没有办法在Windows 8中显示弹出窗口 将垂直对齐和水平对齐设置为“中心”,将垂直偏移和水平偏移设置为0,将导致显示弹出窗口,左上角位于屏幕中心 有什么办法可以做得很好吗 为了使这个问题更加困难,这个弹出窗口在快照视图中有不同的大小,其中也应该居中 有什么想法吗?希望这有帮助,把弹出窗口放在画布上,然后操纵画布怎么样 XAML 试着玩得开心…我把它放在我的Xaml主网格的末尾,排在其他所有内容之后,所以它肯定会排在前面 <Canvas x:Name="pCanvas" Horizon
垂直对齐
和水平对齐
设置为“中心”,将垂直偏移
和水平偏移
设置为0,将导致显示弹出窗口,左上角位于屏幕中心
有什么办法可以做得很好吗
为了使这个问题更加困难,这个弹出窗口在快照视图中有不同的大小,其中也应该居中
有什么想法吗?希望这有帮助,把弹出窗口放在画布上,然后操纵画布怎么样 XAML
试着玩得开心…我把它放在我的Xaml主网格的末尾,排在其他所有内容之后,所以它肯定会排在前面
<Canvas x:Name="pCanvas" HorizontalAlignment="Center" VerticalAlignment="Center">
<StackPanel x:Name="pStackPanel">
<TextBlock x:Name="pText" Text="Enter Name of Playlist:" Margin="25,12" Width="300" />
<TextBox x:Name="pInputBox" Margin="25,12" Width="300" />
<Button x:Name="pButton" Content="OK" Height="30" Width="100" Click="pButton_Clicked" Margin="6,12" />
</StackPanel>
</Canvas>
我还将以下代码添加到我的xaml.cs(代码隐藏)文件中: (参见我之前发布的xaml) 然后,我用下面的myPopup()函数连接任何测试按钮的点击事件 我还没有完全掌握Stackpanel的窍门来集中信息,等等,但我已经做到了
async void messageBox(String msg)
{
MessageDialog dialog = new MessageDialog(msg,"Alert");
await dialog.ShowAsync();
}
private void pButton_Clicked(object sender, RoutedEventArgs e)
{
PLPopup.IsOpen = false;
String str = pInputBox.Text;
hidePopup();
messageBox(str);
}
void hidePopup()
{
pCanvas.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
pStackPanel.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
pText.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
pInputBox.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
pButton.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
}
void showPopup()
{
pCanvas.Visibility = Windows.UI.Xaml.Visibility.Visible;
pStackPanel.Visibility = Windows.UI.Xaml.Visibility.Visible;
pText.Visibility = Windows.UI.Xaml.Visibility.Visible;
pInputBox.Visibility = Windows.UI.Xaml.Visibility.Visible;
pButton.Visibility = Windows.UI.Xaml.Visibility.Visible;
}
private void myPopup(object sender, RoutedEventArgs e)
{
Brush myBrush = new SolidColorBrush(Windows.UI.Colors.Black);
topAppBar.IsOpen = false;
bottomAppBar.IsOpen = false;
myBrush.Opacity = .5;
PLPopup = new Popup();
PLPopup.IsOpen = true;
//PLPopup.Child = myTextbox;
pCanvas.Background = myBrush;
pCanvas.Children.Add(PLPopup);
pCanvas.Width = this.ActualWidth;
pCanvas.Height = this.ActualHeight;
showPopup();
}
<Canvas x:Name="pCanvas" HorizontalAlignment="Center" VerticalAlignment="Center">
<StackPanel x:Name="pStackPanel">
<TextBlock x:Name="pText" Text="Enter Name of Playlist:" Margin="25,12" Width="300" />
<TextBox x:Name="pInputBox" Margin="25,12" Width="300" />
<Button x:Name="pButton" Content="OK" Height="30" Width="100" Click="pButton_Clicked" Margin="6,12" />
</StackPanel>
</Canvas>
async void messageBox(String msg)
{
MessageDialog dialog = new MessageDialog(msg,"Alert");
await dialog.ShowAsync();
}
private void pButton_Clicked(object sender, RoutedEventArgs e)
{
PLPopup.IsOpen = false;
String str = pInputBox.Text;
hidePopup();
messageBox(str);
}
void hidePopup()
{
pCanvas.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
pStackPanel.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
pText.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
pInputBox.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
pButton.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
}
void showPopup()
{
pCanvas.Visibility = Windows.UI.Xaml.Visibility.Visible;
pStackPanel.Visibility = Windows.UI.Xaml.Visibility.Visible;
pText.Visibility = Windows.UI.Xaml.Visibility.Visible;
pInputBox.Visibility = Windows.UI.Xaml.Visibility.Visible;
pButton.Visibility = Windows.UI.Xaml.Visibility.Visible;
}
private void myPopup(object sender, RoutedEventArgs e)
{
Brush myBrush = new SolidColorBrush(Windows.UI.Colors.Black);
topAppBar.IsOpen = false;
bottomAppBar.IsOpen = false;
myBrush.Opacity = .5;
PLPopup = new Popup();
PLPopup.IsOpen = true;
//PLPopup.Child = myTextbox;
pCanvas.Background = myBrush;
pCanvas.Children.Add(PLPopup);
pCanvas.Width = this.ActualWidth;
pCanvas.Height = this.ActualHeight;
showPopup();
}