2012-11-18 47 views
1

是否有一種方法可以在Win 8 Store XAML應用中實現類似於Dialog的效果;類似於in this post指示的那個,其中對話的內容是收集用戶輸入的自定義控件。在Win 8 Store XAML應用中顯示用戶輸入的對話框

以下是一些示例XAML內容,我希望顯示的內容類似於上面的帖子中指出的內容。

<common:LayoutAwarePage 
x:Class="App1.UserControls.Control1" 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
mc:Ignorable="d" 
> 

<Grid HorizontalAlignment="Stretch" Background="Gold" VerticalAlignment="Center"> 
    <StackPanel VerticalAlignment="Center" HorizontalAlignment="Center" AreScrollSnapPointsRegular="True" Margin="20"> 
     <TextBlock Text="This is sample text" FontSize="20" Style="{StaticResource HeaderTextStyle}"/>    
     <Button Content="Close" Click="btnClose_Click" Margin="0,20,0,0" HorizontalAlignment="Right"/> 
    </StackPanel> 
</Grid></common:LayoutAwarePage> 

我使用彈出式控制,從主頁像這樣顯示的:

<common:LayoutAwarepage> 
<Grid Style="{StaticResource LayoutRootStyle}"> 
    <Popup x:Name="ParentedPopup" VerticalOffset="300" HorizontalOffset="200" 
    HorizontalAlignment="Stretch"> 
      <usercontrols:CreateCategory/> 
    </Popup> 
</Grid> 
<Page.BottomAppBar> 
    <AppBar x:Name="bottomAppBar" Padding="10,0,10,0"> 
     <Grid> 
      <StackPanel Orientation="Horizontal" HorizontalAlignment="Left"> 
       <Button Style="{StaticResource AddAppBarButtonStyle}" Click="AddButton_Click"/> 

      </StackPanel> 
     </Grid> 
    </AppBar> 
</Page.BottomAppBar></common:LayoutAwarePage> 
private void AddButton_Click(object sender, RoutedEventArgs e) 
{ 
    if (!ParentedPopup.IsOpen) { ParentedPopup.IsOpen = true; } 
} 

然而,這不顯示,我想讓它,在彈出的不顯示xaml內容居中,它顯示在頂部,並且沒有按照我的意願居中並拉伸。

有沒有簡單的方法來實現這一點? 注意:我不想依賴任何庫。

回答

0

指定垂直偏移屏幕

popup.VerticalOffset = (Window.Current.Bounds.Height/2) - popup.ActualHeight/2; 
Width = Window.Current.Bounds.Width; 

VerticalAlignment="Center"; 

的高度也

<Grid> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="*" /> 
     <ColumnDefinition Width="*" x:Name="ContentColumn"/> 
     <ColumnDefinition Width="*" /> 
    </Grid.ColumnDefinitions> 

    <Grid.RowDefinitions> 
     <RowDefinition /> 
     <RowDefinition /> 
     <RowDefinition /> 
    </Grid.RowDefinitions> 

//Place content in "ContentColumn" to center it 
<Grid> 

把內容ContentColumn使其居中。

1

爲什麼你不想依賴任何二進制文件,如果他們解決你的問題?看看Callisto,它有一個CustomDialog,可以爲你做到這一點,如文檔 - https://github.com/timheuer/callisto/wiki/CustomDialog所示。它是開源的,所以你也可以使用源代碼。但是你要麼依賴某人的代碼來回答你的問題,要麼是一個二進制文件:-)

相關問題