C# 如何将css代码引用到HtmlToImageConverter中

C# 如何将css代码引用到HtmlToImageConverter中,c#,html,css,C#,Html,Css,对于我正在创建的Discord机器人,我需要通过“profile”命令生成一个用户配置文件。HTML显示正常,但没有使用任何CSS样式。如何让html字符串包含CSS样式 我对HTML和CSS没有什么经验(这是别人为我做的),但我相信href是CSS的参考。我尝试过插入文档名,stylesheet.css,但没有成功(可能HTML找不到)。现在,它由{0}表示,这是我格式化字符串中的第一个对象{0}是它上面的css字符串变量 这些字符串中的每个\n都是通常的Enter击键,只有这样机器人才能读取

对于我正在创建的Discord机器人,我需要通过“profile”命令生成一个用户配置文件。HTML显示正常,但没有使用任何CSS样式。如何让html字符串包含CSS样式

我对HTML和CSS没有什么经验(这是别人为我做的),但我相信
href
是CSS的参考。我尝试过插入文档名,
stylesheet.css
,但没有成功(可能HTML找不到)。现在,它由
{0}
表示,这是我格式化字符串中的第一个对象
{0}
是它上面的
css
字符串变量

这些字符串中的每个\n都是通常的
Enter
击键,只有这样机器人才能读取。我在下面包含了原始的HTML和CSS文件

[命令(“配置文件”)]//使用HTML/CSS生成用户的配置文件
公共异步任务配置文件()
{
var account=UserAccounts.GetAccount(Context.User);
字符串css=“@font-face{\n font-family:'ralway';\n src:URL('ralway-Regular.ttf')格式('truetype');\n}\n\nhtml”+
{\n\n字体系列:“Raleway”,无衬线;\n\n}\n\n#probar{\n\n高度:24px;\n宽度:50%;\n+
“背景色:天蓝色;\n边框半径:30px;\n\n}\n\n#probox{\n\n背景色:浅蓝色;\n”+
“宽度:100%;\n边距:自动;\n边框半径:30px;\n\n}\n\n#窗口{\n\n宽度:300px;\n”+
“背景颜色:浅灰色;\n边距:0;\n/*\n背景图像:url(dafef97cb397e61f4c47ef27523b092c.jpg);\n”+
“背景大小:封面;\n背景重复:不重复;\n*/\n\n}\n\n#页眉{\n\n宽度:90%;\n页边空白:自动;\n”+
“填充顶部:10px;\n\n}\n\n#pfp{\n\n高度:150px;\n宽度:150px;\n边框半径:30px;\n边距:自动;\n”+
边框:灰色实心1px;\n\n}\n\n#名称{\n\n文本对齐:中心;\n\n}\n\n#内容{\n\n宽度:90%;\n边距:自动;\n+
“填充底部:10px;\n颜色:黑色;\n\n}\n\n.info{\n\n填充底部:5px;\n字体大小:12px;\n\n}\n”+
“\n#row{\n\n display:flex;\n color:black;\n\n}\n\n#level{\n\n margin:auto;\n\n}\n\n#yes{\n\n margin:0;\n text align:center;\n\n}”+
“\n\n#否{\n\n字体大小:40px;\n边距:0;\n文本对齐:中心;\n边框:纯黑色1px;\n\n}\n\n#信息列表{\n\n文本对齐:中心;\n边距顶部:15px;\n\n}”+
“\n\n#statlist{\n\n text align:right;\n margin top:15px;\n\n}\n\n.inforow{\n\n flex grow:1;\n width:33.3%;\n\n}\n\n#fixedbs{\n\n text align:center;\n”+
“位置:绝对;\n顶部:206px;\n左侧:70px;\n颜色:黑色;\n\n}\n\n”;
string html=string.Format(“\n\n\n\n\n\n\n StageBot用户配置文件\n\n”+
“\n\n\n\n\n\n\n\n\n\n\n”+
“\n\n

{1}{2}

\n\n\n\n\n”+ “\n\n\n\n当前lvl进度/总lvl exp

\n\n”+ “\n\n\n\n\n\n级别

\n”+ “

11

\n\n\n\n

Total EXP

\n”+ “

服务器排名

\n

全局排名

\n\n\n”+ “

xxxxEXP

\n

xxxx

\n

xxxx

\n\n\n”+ “\n\n\n\n\n”,css,Context.User.Username,Context.User.Discriminator); var converter=新的HtmlToImageConverter { 宽度=400, 高度=400 }; var pngBytes=converter.GenerateImage(html,NReco.ImageGenerator.ImageFormat.Png); wait Context.Channel.SendFileAsync(新内存流(pngBytes),“Profile.png”); }
CSS

@font-face{
字体系列:“Raleway”;
src:URL('ralway-Regular.ttf')格式('truetype');
}
html{
字体系列:“Raleway”,无衬线;
}
#可能的{
高度:24px;
宽度:50%;
背景色:天蓝色;
边界半径:30px;
}
#益生菌{
背景颜色:浅蓝色;
宽度:100%;
保证金:自动;
边界半径:30px;
}
#窗口{
宽度:300px;
背景颜色:浅灰色;
保证金:0;
/*
背景图片:url(dafef97cb397e61f4c47ef27523b092c.jpg);
背景尺寸:封面;
背景重复:无重复;
*/
}
#标题{
宽度:90%;
保证金:自动;
填充顶部:10px;
}
#亲民党{
高度:150像素;
宽度:150px;
边界半径:30px;
保证金:自动;
边框:灰色实心1px;
}
#名字{
文本对齐:居中;
}
#内容{
宽度:90%;
保证金:自动;
垫底:10px;
颜色:黑色;
}
.info{
垫底:5px;
字体大小:12px;
}
#划船{
显示器:flex;
颜色:黑色;
}
#水平仪{
保证金:自动;
}
#对{
保证金:0;
文本对齐:居中;
}
#没有{
字体大小:40px;
保证金:0;
文本对齐:居中;
边框:纯黑1px;
}
#信息列表{
文本对齐:居中;
边缘顶部:15px;
}
#统计表{
文本对齐:右对齐;
边缘顶部:15px;
}
.inforow{
柔性生长:1;
宽度:33.3%;
}
#固定资产{
文本对齐:居中;
职位:绝对
<!doctype html>

<html lang="en">
<head>

    <meta charset="utf-8">

    <title>discord thing</title>

    <link rel="stylesheet" href="stylesheet.css">

</head>

<body> 

    <div id="window">

        <div id="header">

            <div id="pfp"></div>

            <p id="name"><b>Garonen#6115</b></p>

        </div>

        <div id="content">

            <div id="probox">

                <div id="probar"></div>

                <p id="fixedbs"><i>cur lvl prog / total lvl exp</i></p>

            </div>

            <div id="row">

                <div class="inforow" id="level">

                    <p id="yes">Level</p>
                    <p id="no"><b>11</b></p>

                </div>

                <div class="inforow" id="infolist">
                    <p class="info">Total EXP</p>
                    <p class="info">Server Rank</p>
                    <p class="info">Global Rank</p>
                </div>

                <div class="inforow" id="statlist">
                    <p class="info">xxxxEXP</p>
                    <p class="info">#xxxx</p>
                    <p class="info">#xxxx</p>
                </div>

            </div>

        </div>  

    </div>

</body>
</html>
string html = String.Format("<!doctype html>\n\n<html lang=\"en\">\n<head>\n \n    <meta charset=\"utf-8\">\n\n    <title>StageBot User Profile</title>\n\n    " +
                "<style>{0}</style>\n\n</head>\n\n<body> \n    \n    <div id=\"window\">\n    \n        <div id=\"header\">\n\n            " +
                "<div id=\"pfp\"></div>\n\n            <p id=\"name\"><b>{1}#{2}</b></p>\n\n        </div>\n\n        <div id=\"content\">\n\n            " +
                "<div id=\"probox\">\n\n                <div id=\"probar\"></div>\n\n                <p id=\"fixedbs\"><i>cur lvl prog / total lvl exp</i></p>\n\n            " +
                "</div>\n\n            <div id=\"row\">\n\n                <div class=\"inforow\" id=\"level\">\n\n                    <p id=\"yes\">Level</p>\n                   " +
                " <p id=\"no\"><b>11</b></p>\n\n                </div>\n\n                <div class=\"inforow\" id=\"infolist\">\n                    <p class=\"info\">Total EXP</p>\n" +
                "                    <p class=\"info\">Server Rank</p>\n                    <p class=\"info\">Global Rank</p>\n                </div>\n\n                <div class=\"inforow\" id=\"statlist\">\n" +
                "                    <p class=\"info\">xxxxEXP</p>\n                    <p class=\"info\">#xxxx</p>\n                    <p class=\"info\">#xxxx</p>\n                </div>\n\n            </div>\n\n " +
                "       </div>  \n        \n    </div>\n    \n</body>\n</html>", css, Context.User.Username, Context.User.Discriminator);