Windows phone 8.1 Windows Phone 8.1消息应用程序中使用的文本控件

Windows phone 8.1 Windows Phone 8.1消息应用程序中使用的文本控件,windows-phone-8.1,winrt-xaml,Windows Phone 8.1,Winrt Xaml,我需要一个类似于WP 8.1消息应用程序使用的文本控件,该控件显示指向“左上”和“右下”的上下箭头。我找不到。我确实看到其他应用程序,如“WhapApp”、“line”等使用类似的控件 该功能是否有预先存在的/开源控件可用。任何指针或链接都会非常有用 谢谢, Amar这不需要自定义控件。您可以创建一个普通文本框或文本块,并在其下方(或上方)添加一个三角形。使用模板选择器根据聊天对象选择左侧或右侧: Xaml: 谢谢你的回答! <Page.Resources> <Data

我需要一个类似于WP 8.1消息应用程序使用的文本控件,该控件显示指向“左上”和“右下”的上下箭头。我找不到。我确实看到其他应用程序,如“WhapApp”、“line”等使用类似的控件

该功能是否有预先存在的/开源控件可用。任何指针或链接都会非常有用

谢谢,
Amar

这不需要自定义控件。您可以创建一个普通文本框或文本块,并在其下方(或上方)添加一个三角形。使用模板选择器根据聊天对象选择左侧或右侧:

Xaml:


谢谢你的回答!
<Page.Resources>
    <DataTemplate x:Key="ChatTemplateR">
        <StackPanel Margin="30,2,0,2">
            <Border Background="{Binding Fill}" >
                <TextBlock MinWidth="200" Text="{Binding Text}" TextWrapping="Wrap"  Margin="5"/>
            </Border>
            <Path x:Name="DownRightTri"
                  HorizontalAlignment="Right" 
                  Margin="0,0,10,0" 
                  Fill="{Binding Fill}"
                  Data="M0,0 H10 V10" />

        </StackPanel>
    </DataTemplate>
    <DataTemplate x:Key="ChatTemplateL">
        <StackPanel Margin="0,2,30,2" >
            <Path x:Name="UpLeftTri"
                  HorizontalAlignment="Left" 
                  Margin="10,0,0,0" 
                  Fill="{Binding Fill}"
                  Data="M0,-5 V5 H10 " />        
            <Border Background="{Binding Fill}" >
                <TextBlock MinWidth="200" Text="{Binding Text}" TextWrapping="Wrap" Margin="5"/>
            </Border>


        </StackPanel>
    </DataTemplate>
    <local:ChatTemplateSelector x:Key="ChatSelector" LeftTemplate="{StaticResource ChatTemplateL}" RightTemplate="{StaticResource ChatTemplateR}"/>
</Page.Resources>

<Grid>
    <ListView x:Name="lv" ItemTemplateSelector="{StaticResource ChatSelector}"/>
</Grid>
class ChatTemplateSelector: DataTemplateSelector
{
    public DataTemplate LeftTemplate { get; set; }
    public DataTemplate RightTemplate { get; set; }

    protected override DataTemplate SelectTemplateCore(object item, DependencyObject container)
    {
        DataItem di = (DataItem)item;
        DataTemplate dt = di.IsLeft ? this.LeftTemplate : this.RightTemplate;
        return dt;
    }
}