2011-04-14 88 views
0

我正在开发Windows Phone应用程序。弹出:保证金问题顶部

我使用用户控件显示一个弹出:

<UserControl x:Class="XXXXXXX.Views.Lists.GameDescriptionControl" 
    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" 
    FontFamily="{StaticResource PhoneFontFamilyNormal}" 
    FontSize="{StaticResource PhoneFontSizeNormal}" 
    Foreground="{StaticResource PhoneForegroundBrush}" Height="290" Width="460"> 

    <Grid x:Name="LayoutRoot" Background="{StaticResource PhoneChromeBrush}" Margin="0,0,0,0" Width="460"> 
     <Grid.RowDefinitions> 
      <RowDefinition Height="Auto"/> 
      <RowDefinition Height="133"/> 
      <RowDefinition Height="86"/> 
     </Grid.RowDefinitions> 
     <TextBlock HorizontalAlignment="Center" Margin="10" Name="gameDescription" Text="" VerticalAlignment="Top" TextWrapping="Wrap" Grid.Row="1" Style="{StaticResource PhoneTextTitle3Style}" /> 
     <Button Content="{Binding Path=AppResources.Yes, Source={StaticResource LocalizedStrings}}" Height="72" HorizontalAlignment="Left" Margin="50,5,0,0" Name="okButton" VerticalAlignment="Top" Width="160" Click="okButton_Click" Grid.Row="2" /> 
     <Button Content="{Binding Path=AppResources.No, Source={StaticResource LocalizedStrings}}" Height="72" HorizontalAlignment="Left" Margin="244,5,0,0" Name="cancelButton" VerticalAlignment="Top" Width="160" Click="cancelButton_Click" Grid.Row="2" /> 
     <TextBlock Grid.Row="0" x:Name="caption" HorizontalAlignment="Left" Margin="10" TextWrapping="Wrap" Text="{Binding Path=AppResources.Description, Source={StaticResource LocalizedStrings}}" Style="{StaticResource PhoneTextLargeStyle}"/> 
    </Grid> 
</UserControl> 

这是显示弹出代码:

private void showInfo(int gameId) 
{ 
    string gameDesc = getGameInfo(gameId); 
    p = new Popup(); 
    GameDescriptionControl gd = new GameDescriptionControl(); 
    gd.Description = gameDesc; 
    gd.OkClicked += new EventHandler(gd_OkClicked); 
    gd.CancelClicked += new EventHandler(gd_CancelClicked); 

    p.Child = gd; 

    // Set where the popup will show up on the screen. 
    p.VerticalOffset = 10; 
    p.HorizontalOffset = 10; 

    // Open the popup. 
    p.IsOpen = true; 
} 

但我得到这个:

Caption without margin top

正如您所看到的,标题TextBlock没有裕量顶部。

有什么建议吗?

回答

0

保证金将引用您的文本块以外的区域。如果您想要将文本从文本块边缘移开,则需要使用“填充”属性。

+0

不,我想要那个标题的TextBlock(使用文本=“说明”)的保证金= 10。 – VansFannel 2011-04-14 16:08:07

0

不要像回形针一样行动,但它看起来像你试图制作一个自定义的MessageBox。

检查此实施:http://cloudstore.blogspot.com/2011/01/customizing-messagebox-on-windows-phone.html。这是一个非常好用的消息框实现,看起来/行为非常接近真实的MessageBox,并且是轻量级的。

添加附带解决的几个文件,所有你需要做的是:

private MessageBoxService mbs = new MessageBoxService(); 

    ... 

mbs.Closed +=new System.EventHandler(mbs_Closed); 
mbs.Show("Confirm?","Are you sure you wish to do that?",MessageBoxServiceButton.YesNo,null); 

void mbs_Closed(object sender, System.EventArgs e) 
     { 
      mbs.Closed -= mbs_Closed; 

      if (mbs.Result == MessageBoxResult.Yes) 
      { 
... 
      } 
     } 
+0

谢谢,但我想知道为什么我失去了这个保证金。 – VansFannel 2011-04-15 08:07:09