C# 在c中更改字体样式

C# 在c中更改字体样式,c#,asp.net,C#,Asp.net,您好,我想通过选择dorpdownlist提供的选项来更改aspx页面中标签的字体样式。这些方法都不起作用。我知道我可能在正确的道路上,但似乎无法正确地走下去。请开导我。谢谢 在我的代码隐藏中: public void button1_Click(object sender, EventArgs e) { var select= drop1.SelectedItem.Value; if(select == "Times New Roman") { // I tried doi

您好,我想通过选择dorpdownlist提供的选项来更改aspx页面中标签的字体样式。这些方法都不起作用。我知道我可能在正确的道路上,但似乎无法正确地走下去。请开导我。谢谢 在我的代码隐藏中:

public void button1_Click(object sender, EventArgs e)
{
  var select= drop1.SelectedItem.Value;
  if(select == "Times New Roman")
  {
    // I tried doing all of these:
    label1.Font= new Font("Times New Roman", label1.Font.Size);
    //or
    label1.Font.Name ="Times New Roman";
    //or
    Label new1 = new Label("Times New Roman");
    Label1.Font= new1;
  }
} 

你需要这样做吗?无论如何,这不是一个“好”的解决方案。最好指定一个css类。我以前从未见过这种情况。。。但我要说的是,它来自WinForms

请改用CssClass:

label1.CssClass = "SomeClass";
并在样式表中定义样式:

.SomeClass { font-family: "Times New Roman"; font-size: 1.2em; }
这是我的密码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace WebApplication2
{
    public partial class _Default : System.Web.UI.Page
    {
    protected void Page_Load(object sender, EventArgs e)
    {

    }

    protected void Button1_Click(object sender, EventArgs e)
    {
        Label1.Font.Name = "Verdana";
    }
}
}

它正在工作,我只需要您确保在运行应用程序之前,您在标签上设置了一个fontname,因为当您将fontname放入页面时,它是空的,如果不设置字体名称,则不起作用最初需要设置字体名称,然后使用上面编写的代码。打开“属性”窗口,单击标签并单击字体,然后为字体名称选择名称
最好使用jquery

将事件处理程序绑定到select下拉列表上的onchange事件,并根据该值更改css类。这样做的好处是a-不是服务器端,避免了对服务器的攻击b-更容易c-更干净

编辑:像这样的东西可以改编

在web上,我们不创建新字体,这适用于桌面编程,新字体是在服务器上而不是在客户端上创建的

标签包含.Font,但不用于设置新字体,而是用于实际创建新的内联样式,对象是FontInfo而不是字体

下面是一个例子:

// Note that myLabel.Font is a FontInfo object.

myLabel.Font.Bold = true;
myLabel.Font.Italic = false;
myLabel.Font.Name = "verdana";
myLabel.Font.Overline = false;
myLabel.Font.Size = 10;
myLabel.Font.Strikeout = false;
myLabel.Font.Underline = true;

// Write information on the FontInfo object to the myLabel label.
myLabel.Text = myLabel.Font.ToString();

这个的最终呈现包含内联样式,将此属性赋予span或div中的文本。当然,最好是提供一个全局css类,但有时需要干扰内联样式。

我对Webforms的主要不满之一是它允许存在这种类型的代码。正如你所说的,对它应用CSS类要好得多。它是一个Web表单。我就是这样做的,这可能不好。但是我不想做CSS类。我只想更改按钮点击事件的字体。不,这不是解决方案,肯定意味着要返回服务器,不是吗?@Gordon:这怎么不是解决方案?为什么每个人都在谈论服务器?他从一开始就处于服务器端环境中,所以这就是我的建议。当然,他可以用jQuery轻松地做到这一点。我并不是那种对所有问题都响应jQuery的人:我的应用程序完全是服务器端开发人员。Yheeshhjquery,我必须学习这些东西。这真的是我唯一的选择吗?不,真的,不。互联网会因此恨你的。b使用CSS,ffs。可能的重复标记为完全重复:虽然可能有点太仓促,但这一次在答案上花费了大量精力。我现在喜欢jquery。在过去的两年里,我一直在与web表单作斗争,并得出结论,这要简单得多。当你开始摆弄更新面板和动态控件时,你将陷入一个痛苦的世界。我明白了,Hallueuaholl,我现在很痛苦…一定是因为我没有使用jqueryZen_2011-还没有,但是当你尝试做一些复杂的事情时,你很快就会。。。相信我,我没有名字集,所以我照你说的做了,我设置了我的标签Font-Names=name;。但它仍然不适用于我,我想知道是否还有另一个错误阻止了这个方法的工作。谢谢你的回答!:@Zen_2011一点也不。我认为对名称有误解,你应该做的是点击标签进入属性窗口点击字体,点击字体前面的白色部分,选择Verdana或Times New Roman等字体类型。如果仍然不起作用,请尝试重新创建标签,然后再创建网页。祝您好运。@emreviriyaz我们似乎处于不同的环境中,我的属性与您的不一样,我没有字体选项可设置。我有字体名称:我可以在其中输入名称,字体粗体:设置为真或假,等等。所以你做了这个字体名称=泰晤士报新罗马;哦,好吧,我几乎可以肯定你的代码不起作用的原因是这样的,我希望你能随着时间的推移解决它。@emriviliaz好消息!!!,我使用了ur方法,设置字体名=…,清理了我的代码,因为我感觉到其他错误影响了输出,它工作了!一切都很好。非常感谢