gpt4 book ai didi

c# - WPF C# 在特定位置的文本 block 内插入图像(代码)

转载 作者:行者123 更新时间:2023-11-30 20:53:08 27 4
gpt4 key购买 nike

我想在执行期间在特定位置的文本 block 内添加图像。我正在为游戏聊天,这些图像将是表情符号。我想做一个把图片放在句末的方法,但是我做的那个效果不好,因为表情符号总是出现在句末。

聊天应该是这样的:

玩家 1:嗨 *(图片)

玩家2:我不想和你说话*2(Image2)

但是我的聊天看起来像这样:

玩家 1:嗨 *

玩家:我不想和你说话*2 (Image)(Image2)

代码:

        foreach(char CharOfTheEmoticon in MiChatBox.Text)
{

if (CharOfTheEmoticon.Equals('*'))
{
BitmapImage MyImageSource = new BitmapImage(new Uri(@"..\..\..\..\Tarea6\Tarea3Frontend\NewImages\Smile.png", UriKind.Relative));
Image image = new Image();
image.Source = MyImageSource;
image.Width = 15;
image.Height = 15;
image.Visibility = Visibility.Visible;
InlineUIContainer container = new InlineUIContainer(image);
Run run = new Run();
run.Text = "*";
MiChatBox.Inlines.Add(container);
MiChatBox.Inlines.Add(run);
}

//More if for a differents images
}

图像的位置由特定的字符表示(例如*o*2) 我想使用普通的 TextBlock 而不是 RichTextBlock 我认为这对于普通的 TextBlock 是可能的,因为它可以在 xaml 中完成。 感谢您的关注,希望您能帮助我。

最佳答案

"MiChatBox.Inlines.Add"它添加在所有的末尾。你应该这样做:

 var strBuild = new StringBuilder();
var input = MiChatBox.Text;
MiChatBox.Text = "";

foreach (char CharOfTheEmoticon in input)
{
strBuild.Append(CharOfTheEmoticon);

if (CharOfTheEmoticon == '*')
{

BitmapImage MyImageSource = new BitmapImage(new Uri(@"..\..\..\..\Tarea6\Tarea3Frontend\NewImages\Smile.png", UriKind.Relative));
Image image = new Image();

image.Source = MyImageSource;
image.Width = 15;
image.Height = 15;
image.Visibility = Visibility.Visible;
InlineUIContainer container = new InlineUIContainer(image);

var originLastrText = new Run(strBuild.ToString());
MiChatBox.Inlines.Add(originLastrText);
MiChatBox.Inlines.Add(container);

strBuild.Clear();
}
}

var textRem = new Run(strBuild.ToString());
MiChatBox.Inlines.Add(textRem);

关于c# - WPF C# 在特定位置的文本 block 内插入图像(代码),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20223913/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com