在c#中更改字体样式

时间:2011-04-09 19:27:53

标签: 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 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;
  }
} 

4 个答案:

答案 0 :(得分:3)

你最好使用jquery

将事件处理程序绑定到select下拉列表上的onchange事件,然后根据值更改css类。这样做的好处是 - 不是服务器端,而是避免服务器上的命中b - 更容易使用c - cleaner

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

jQuery onchange/onfocus select box to display an image?

答案 1 :(得分:2)

你需要这样做吗?无论如何,这不是一个“好”的解决方案。分配一个css类要好得多。我之前没有见过这种方式......但我会说它来自WinForms。

改为使用CssClass:

label1.CssClass = "SomeClass";

在样式表中定义样式:

.SomeClass { font-family: "Times New Roman"; font-size: 1.2em; }

答案 2 :(得分:2)

这是我的代码

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是空的,(如果你不能使用它最初不要设置字体名)你需要设置它,然后使用上面的代码。打开属性窗口,单击标签,然后单击字体,然后选择字体名称的名称 open the properties window click the label and click font then choose a name for font name

答案 3 :(得分:1)

在网络上我们不创建new Font这适用于桌面编程,而新的字体是在服务器上而不是在客户端上制作的。

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

MSDN 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类,但有时你需要干扰内联样式。