如果我有一个字符串"123???"
,我怎么能把它分成一个数组,看起来像["", "1", "2", "3", "???"]
?如果我使用ToCharArray()
第一个表情符号分为2个字符,第二个变成7个字符.
更新
解决方案现在看起来像这样:
public static List<string> GetCharacters(string text)
{
char[] ca = text.ToCharArray();
List<string> characters = new List<string>();
for (int i = 0; i < ca.Length; i++)
{
char c = ca[i];
if (c > ?65535?) continue;
if (char.IsHighSurrogate(c))
{
i++;
characters.Add(new string(new[] { c, ca[i] }));
}
else
characters.Add(new string(new[] { c }));
}
return characters;
}
Run Code Online (Sandbox Code Playgroud)
请注意,正如评论中所述,它不适用于家庭表情符号.它仅适用于2个字符或更少字符的表情符号.该示例的输出将是:["", "1", "2", "3", "?", "?", "?", ""]
在Windows通用平台上的ListViews中,当您使用ListView分组时,组头下方有一条丑陋的分隔线.甚至微软也在自己的应用中删除了这一行.在Live Visual Tree中,您可以看到它是GridViewHeaderItem中的矩形.我已经读过可以将它的高度设置为0.我怎么能这样做?
这是设置标题项文本的代码:
<ListView.GroupStyle>
<GroupStyle HidesIfEmpty="True" >
<GroupStyle.HeaderTemplate>
<DataTemplate>
<TextBlock Text="{Binding Name}"/>
</DataTemplate>
</GroupStyle.HeaderTemplate>
</GroupStyle>
</ListView.GroupStyle>
Run Code Online (Sandbox Code Playgroud) 如何将RenderTargetBitmap对象转换为SoftwareBitmap?可以将RenderTargetBitmap作为Image Source获取,另一方面我可以将SoftwareBitmap用作SoftwareBitmapSource并将其转换为ImageSource.但是如何将RenderTargetBitmap直接转换为SoftwareBitmap?