Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xaml 自定义Windows Phone 8.1消息对话框_Xaml_Windows Phone 8.1 - Fatal编程技术网

Xaml 自定义Windows Phone 8.1消息对话框

Xaml 自定义Windows Phone 8.1消息对话框,xaml,windows-phone-8.1,Xaml,Windows Phone 8.1,我想自定义我的消息对话框,如下图所示 如何执行我为此准备的xaml <StackPanel Name="rootStackPanel" Height="Auto" Background="#363636" VerticalAlignment="Top"> <StackPanel Margin="10"> <StackPanel Margin="0,0,0,10" Orientation="Horizontal">

我想自定义我的消息对话框,如下图所示

如何执行我为此准备的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>

您在那里的确切外观是非标准的,如果您想要确切的外观,您需要编写一些自定义代码。如果重要的部分是警报标题中的图标,那么使用ContentDialog就很容易了

MessageDialog不可自定义,但ContentDialog可自定义。有一个模板可以使用add.new项向项目中添加新的ContentDialog。。。菜单

拥有ContentDialog文件后,您可以自定义模板以将其按钮标题为“确定”:


并将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>


这将使OK按钮位于右下角的标准位置。如果希望将其包含在文本中,可以像示例代码一样将其粘贴在StackPanel中,而不在ContentDialog上设置PrimaryButtonText

在项目中创建用户控件。 将整个xaml代码放在Usercontrol中。 现在,您可以将此Usercontrol用作弹出窗口,无论您想在哪里使用它

Popup msgpopup = new Popup( );
msgpopup.child = new CustomisedMessageDialogControl(); //name of ur Usercontrol
要打开这个对话框

msgpopup.IsOpen = true;
msgpopup.IsOpen = true;