2015-02-10 57 views
3

我想自定義消息對話框,如圖下圖自定義的Windows Phone 8.1消息對話框

enter image description here

我怎樣做,我已經準備XAML這個

<StackPanel Name="rootStackPanel" Height="Auto" Background="#363636" VerticalAlignment="Top"> 
     <StackPanel Margin="10"> 
      <StackPanel Margin="0,0,0,10" Orientation="Horizontal"> 
       <TextBlock x:Name="HeadingText" x:FieldModifier="public" Style="{StaticResource ApplicationMessageBoxHeadingStyle}" Text="Alert" /> 
       <Image Margin="10,05,0,0" Source="/Assets/Images/alert.png" Width="35"></Image> 
      </StackPanel> 
      <TextBlock x:FieldModifier="public" x:Name="ContentText" Style="{StaticResource ApplicationMessageBoxErrorStyle}" Text="Pease enter a valid plate number" /> 
      <Button x:FieldModifier="public" Name="OkButton" Margin="0,20,0,0" Padding="0" HorizontalAlignment="Left" Content="Ok" Style="{StaticResource ApplicationThemeButtonStyle}"/> 
     </StackPanel> 
    </StackPanel> 

回答

5

確切看你有沒有標準的,如果你想要那個確切的東西,你需要編寫一些自定義代碼。如果重要部分是警報標題中的圖標,那麼使用ContentDialog可以非常容易。

MessageDialog不可定製,但ContentDialog是。有一個模板使用Add.New Item ...菜單添加一個新的ContentDialog到你的項目中。

一旦你有你ContentDialog文件,您可以自定義模板標題的「確定」按鈕:

<ContentDialog 
    x:Class="MyApp.AlertDialog" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:local="using:MyApp" 
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    mc:Ignorable="d" 
    Title="Alert" 
    PrimaryButtonText="OK" 
    PrimaryButtonClick="ContentDialog_PrimaryButtonClick" 
    > 

,包括你的alert.png在標題模板標題一起。更高級的版本可以允許爲不同的目的綁定不同的圖標。你也可以填寫一個路徑,而不是繪製一個PNG圖標,這樣可以更輕鬆地縮放圖標。

<ContentDialog.TitleTemplate> 
     <DataTemplate> 
      <StackPanel Orientation="Horizontal"> 
       <TextBlock Text="{Binding}" Foreground="{ThemeResource PhoneAccentBrush}"/> 
       <Image Source="/Assets/Images/alert.png" /> 
      </StackPanel> 
     </DataTemplate> 
    </ContentDialog.TitleTemplate> 

然後包括在ContentDialog的XAML中其餘內容:

<StackPanel> 
    <TextBlock x:FieldModifier="public" x:Name="ContentText" Style="{StaticResource ApplicationMessageBoxErrorStyle}" Text="Pease enter a valid plate number" /> 
</StackPanel> 

這將使在右下角在其標準化的位置確定按鈕。如果你想把它包含在文本中,你可以像你的示例代碼一樣將它放在你的StackPanel中,而不是在ContentDialog上設置PrimaryButtonText。

0

在項目中創建一個UserControl。 將整個xaml代碼放在Usercontrol中。 現在,您可以使用此用戶控件作爲彈出式窗口,無論您想使用它。

Popup msgpopup = new Popup(); 
msgpopup.child = new CustomisedMessageDialogControl(); //name of ur Usercontrol 

而且只需打開此對話框,

msgpopup.IsOpen = true; 
相關問題