none
message形式的对话框 RRS feed

  • 问题

  • 我想问下win8下自带的message 采用的一来一往的对话框是怎么实现的? 有没有人给个思路? 是不是不同的item应用不同的itemcontainerstyle?
    2012年9月18日 8:47

答案

全部回复

  • 自己用Popup设计一个,如果你要防止用户在显示Popup的时候点击你的应用,你可以后面放置一个全屏的半透明矩形进行遮盖。


    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us

    2012年9月19日 3:30
    版主
  • 楼上正解!

    关注WP&Win8产品及体验,并致力于Windows Phone & Windows 8 技术的研究和推广!如果有任何WP&win8问题,欢迎到:http://ask.metrofeng.com 来找我!

    2012年9月19日 12:14
  • 什么叫用popup 有没有相关的例子啊 谢谢
    2012年9月20日 2:50
  • XAML:

        <Grid x:Name="layoutroot" Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
            <Button VerticalAlignment="Top" Content="Show message" Click="Button_Click_1"/>
        </Grid>

    C#:

            private void Button_Click_1(object sender, RoutedEventArgs e)
            {
    
                Rectangle rect = new Rectangle()
                {
                    Width = Window.Current.Bounds.Width,
                    Height = Window.Current.Bounds.Height,
                    Fill = new SolidColorBrush(Color.FromArgb(0xaa, 0x55, 0x55, 0x55))
                };
                layoutroot.Children.Add(rect);
    
                Popup popup = new Popup()
                {
                    VerticalOffset = (Window.Current.Bounds.Height - 200) / 2
                };
                Grid grid = new Grid()
                {
                    Background = new SolidColorBrush(Colors.Black),
                    Width = Window.Current.Bounds.Width,
                    Height = 200
                };
                TextBlock message = new TextBlock()
                {
                    Text = "Hello Windows 8",
                    FontSize = 30,
                    Margin = new Thickness(30)
                };
                Button okbtn = new Button
                {
                    Content = "OK",
                    HorizontalAlignment = Windows.UI.Xaml.HorizontalAlignment.Right,
                    VerticalAlignment = Windows.UI.Xaml.VerticalAlignment.Bottom,
                    Margin = new Thickness(30)
                };
                okbtn.Click += (s, earg) =>
                {
                    if (popup.IsOpen)
                    {
                        popup.IsOpen = false;
                        layoutroot.Children.Remove(rect);
                    }
                };
    
                grid.Children.Add(message);
                grid.Children.Add(okbtn);
                popup.Child = grid;
                popup.IsOpen = true;
            }
        }


    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us

    2012年9月20日 3:16
    版主
  • 不好意思 说错了 不是message

    是messenger,win8自带的那个app, 就是一来一往的对话框那样。如果我用gridview来显示message ,每个gridviewitem都变成一样大,我只想要message多大就显示多大的item,是不是要用到variablesizegridview? 还有什么好方法么?

    2012年9月21日 9:36
  • ...

    我的想法是用ScrollViewer + StackPanel好了,系统自带的Messager 是HTML方案的,所以会不一样。


    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us

    2012年9月24日 6:38
    版主