<Grid >
<Grid x:Name="bubble_right" VerticalAlignment="Center" RenderTransformOrigin="0.5,0.5" HorizontalAlignment="Right"
Visibility="{Binding showright}" MinWidth="80">
<Grid Margin="5,5,15,5" MaxWidth="400" MinWidth="50" MinHeight="80">
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition Width="15"/>
<ColumnDefinition Width="80"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid Grid.Column="0" Grid.RowSpan="2" MaxWidth="400">
<Rectangle StrokeThickness="0" Fill="#FF6accfd" RadiusY="4" RadiusX="4" Margin="0,10,0,0" MaxWidth="400" MinWidth="100"/>
<StackPanel Orientation="Vertical" MaxWidth="400">
<TextBlock FontSize="24" Text="为飞撒的反馈师傅" Grid.Column="0" Padding="5,0" MinWidth="30"
Foreground="Black" Margin="5,20,5,0" Tag="0" TextAlignment="Left" TextWrapping="Wrap" />
<TextBlock HorizontalAlignment="Left" TextWrapping="Wrap" Text="2015-12-21 12:12:15" Foreground="Black"
VerticalAlignment="Top" Height="16" Margin="5,0,5,5" Grid.Column="0" FontSize="15"/>
</StackPanel>
</Grid>
<Path Data="M29.5,14 L25.25,14 L25.25,17.75" Fill="#ffdadada" HorizontalAlignment="Left" Grid.Column="1"
Height="16" Stretch="Fill" Stroke="Transparent" VerticalAlignment="Top" Width="15" StrokeThickness="0" Margin="0,20,0,0"/>
<Grid Grid.Column="2" Grid.RowSpan="2" Margin="0,5" Width="80">
<Grid.RowDefinitions>
<RowDefinition Height="60"/>
<RowDefinition Height="30"/>
</Grid.RowDefinitions>
<Image Source="/Assets/sound.png" Grid.Row="0"/>
<Image Source="/Assets/PrivateMsgLock.png" Width="30" Grid.Row="1" Margin="25,0"/>
</Grid>
</Grid>
</Grid>
<Grid x:Name="bubble_left" VerticalAlignment="Center" RenderTransformOrigin="0.5,0.5" HorizontalAlignment="Left"
Visibility="{Binding showleft}" MinWidth="80">
<Grid Margin="5,5,15,5" MaxWidth="400" MinWidth="50" MinHeight="80">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="80"/>
<ColumnDefinition Width="15"/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Grid Grid.Column="2" Grid.RowSpan="2" MaxWidth="400">
<Rectangle StrokeThickness="0" Fill="#FF6accfd" RadiusY="4" RadiusX="4" Margin="0,10,0,0" MaxWidth="400" MinWidth="100"/>
<StackPanel Orientation="Vertical" MaxWidth="400">
<TextBlock FontSize="24" x:Name="inTB" Text="动" Grid.Column="2" Padding="5,0" MinWidth="30"
Foreground="Black" Margin="5,20,5,0" Tag="0" TextAlignment="Left" TextWrapping="Wrap" />
<TextBlock HorizontalAlignment="Left" TextWrapping="Wrap" Text="2015-12-21 12:12:15" Foreground="Black"
VerticalAlignment="Top" Height="16" Margin="5,0,5,5" Grid.Column="2" FontSize="15"/>
</StackPanel>
</Grid>
<Grid Grid.Column="0" Grid.RowSpan="2" Margin="0,5" Width="80">
<Grid.RowDefinitions>
<RowDefinition Height="60"/>
<RowDefinition Height="30"/>
</Grid.RowDefinitions>
<Image Source="/Assets/sound.png" Grid.Row="0"/>
<Image Source="/Assets/PrivateMsgLock.png" Width="30" Grid.Row="1" Margin="25,0"/>
</Grid>
<Path Data="M29.5,14 L25.25,14 L25.25,17.75" Fill="#FF6accfd" HorizontalAlignment="Left"
Height="16" Stretch="Fill" Stroke="Transparent" VerticalAlignment="Top" Width="15" StrokeThickness="0"
Margin="0,20,0,0" UseLayoutRounding="False" Grid.Column="1" RenderTransformOrigin="0.5,0.5">
<Path.RenderTransform>
<CompositeTransform ScaleX="-1"/>
</Path.RenderTransform>
</Path>
</Grid>
</Grid>
</Grid>

<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
<ListBox x:Name="list" Margin="0,0,0,155" Background="White" ItemsSource="{Binding}" ItemTemplate="{StaticResource DataTemplate2}">
<!-- 确保listboxitem被stretch到listbox的宽度 -->
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
</Style>
</ListBox.ItemContainerStyle>
</ListBox>

<TextBox x:Name="inputbox" Margin="0,453,0,72" TextWrapping="Wrap"
Text="TextBox" Background="#BFE4AFAF"
BorderBrush="#BF906060"
Padding="1" SelectionBackground="#FFE21BB4" />
<Button Content="Add to right" Grid.Row="1" Height="72" HorizontalAlignment="Left"
Margin="0,535,0,0" Name="button1" VerticalAlignment="Top" Width="181" FontSize="20" Click="button1_Click" />
<Button Content="Add to Left" Height="72" HorizontalAlignment="Left"
Margin="186,535,0,0" Name="button2" VerticalAlignment="Top" Width="181" FontSize="20" Click="button2_Click" />
</Grid>

public class msg_class
{
public String content { get; set; }
public Visibility showleft { get; set; }
public Visibility showright { get; set; }

public msg_class(String content, Visibility showleft, Visibility showright)
{
this.content = content;
this.showleft = showleft;
this.showright = showright;
}
}

void showmsg(String msg, bool isself)
{
if (isself)
{
list.Items.Add(new msg_class(msg, Visibility.Collapsed, Visibility.Visible));
}
else
{
list.Items.Add(new msg_class(msg, Visibility.Visible, Visibility.Collapsed));
};
}

void readmsg(int index)
{
string s = ((msg_class)(list.Items[index])).content;
list.Items[index] = new msg_class(s, Visibility.Visible, Visibility.Collapsed);
}

private void button1_Click(object sender, RoutedEventArgs e)
{
showmsg("我地方暗示法sdf撒的反馈地方发生的疯狂暗示法的是嘎达", true);
list.ScrollIntoView(list.Items[0]);
}

private void button2_Click(object sender, RoutedEventArgs e)
{
showmsg(inputbox.Text, false);
list.ScrollIntoView(list.Items[0]);
}

wp8 入门到精通 聊天控件的更多相关文章

  1. 【番外篇】ASP.NET MVC快速入门之免费jQuery控件库(MVC5+EF6)

    目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...

  2. UWP入门(五)--控件模板

    原文:UWP入门(五)--控件模板 通过在 XAML 框架中创建控件模板,你可以自定义控件的可视结构和可视行为(eg:勾选框的三种状态). 控件有多个属性,如 Background.Foregroun ...

  3. 2013 duilib入门简明教程 -- 复杂控件介绍 (13)

      首先将本节要介绍的控件全部拖到界面上,并调整好位置,如图:           然后将Name属性改成其他名字,          不能是[控件名+UI+数字]这种,因为这是DuiDesigner ...

  4. [深入浅出WP8.1(Runtime)]浮出控件(Flyout)

    4.15 浮出控件(Flyout) 浮出控件(Flyout)是一个轻型的辅助型的弹出控件,通常会作为提示或者要求用户进行相关的交互来使用.Flyout控件与Windows Phone里面的弹出框Mes ...

  5. 2013 duilib入门简明教程 -- 简单控件介绍 (12)

        前面的教程应该让大家对duilib的整体有所映像了,下面就来介绍下duilib具体控件的使用.     由于官方没有提供默认的控件样式,所以我就尽量使用win7或者XP自带的按钮样式了,虽然界 ...

  6. wp8 入门到精通 ImageCompress 图片压缩

    //实例化选择器 PhotoChooserTask photoChooserTask = new PhotoChooserTask(); BitmapImage bimg; int newPixelW ...

  7. wp8 入门到精通

    <StackPanel Orientation="Vertical"> <StackPanel Orientation="Horizontal" ...

  8. WP8.1开发中ListView控件加载图列表的简单使用(1)

    我也是刚接触WP编程没几个月,就是在这段时间一直闲着没事,然后又比较喜欢WP这款系统,就学习了WP这方面的开发言语,自学是很困难的,掌握这方面的资料不多,很初级,就是自己在网上找资料学习过程中,看到别 ...

  9. 3.WP8.1开发_为控件增加动画

    示例: 把一个按钮的宽度从100变到500 根据WPF的经验,会把代码写成如下: <Grid> <Button x:Name="btn" Content=&quo ...

随机推荐

  1. LUA+resty 搭建验证码服务器

    使用Lua和OpenResty搭建验证码服务器 雨客 2016-04-08 16:38:11 浏览2525 评论0 云数据库Redis版 摘要: Lua下有个Lua-GD图形库,通过简单的Lua语句就 ...

  2. iOS开发之loadView和viewDidLoad总结

    http://www.1000phone.net/forum.php?mod=viewthread&tid=10507&extra=page%3D1%26filter%3Dauthor ...

  3. 打印log

    入口文件 //日志记录配置 if (!defined('DS')) { define('DS', '/'); } if(!defined('APP_PATH_LOG')){ define('APP_P ...

  4. POJ 2503

    http://poj.org/problem?id=2503 题意就是字典翻译.这个输入输出真心恶心,要不是看discuss我肯定是解决不了,还用上了sscanf函数.... 这道题我用几种方法做. ...

  5. struts2 结果页面配置

    <result>标签: * 属性: * name:逻辑视图的名称 * type:结果页面类型. * dispatcher         :转发.默认值. * redirect       ...

  6. Shell 读取文本内容

    在Linux中有很多方法逐行读取一个文件的方法,其中最常用的就是下面的脚本里的方法,而且是效率最高,使用最多的方法.为了给大家一个直观的感受,我们将通过生成一个大的文件的方式来检验各种方法的执行效率. ...

  7. php xdebug配置

    2015年11月27日 17:08:54 [xdebug] ;用触发的形式去开启跟踪调试 get/post/cookie 中添加变量"XDEBUG_TRACE" xdebug.au ...

  8. MongoDB 数据库管理(不定时更新)

    之前的几篇文章大致说了副本集的搭建.副本集的管理,现在说下MongoDB数据库的管理.数据库管理包括:备份.还原.导入.导出.服务器管理等. 一:查看服务器状态,查看命令行参数.db.serverSt ...

  9. 【leetcode】Number of Islands(middle)

    Given a 2d grid map of '1's (land) and '0's (water), count the number of islands. An island is surro ...

  10. xcode 自定义Eclipse里边常用的快捷键

    之前在用Eclipse写Java的 时候,有几个常用的快捷键,比如删除当前行,在当前行下面插入空行,向上/下移动当前行等等,到了Xcode里怎么也找不到这些快捷键,一直觉得 Xcode自带的快捷键不够 ...