您好我想通过选择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;
}
}
答案 0 :(得分:3)
你最好使用jquery
将事件处理程序绑定到select下拉列表上的onchange事件,然后根据值更改css类。这样做的好处是 - 不是服务器端,而是避免服务器上的命中b - 更容易使用c - cleaner
编辑:可以改编这样的东西
答案 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是空的,(如果你不能使用它最初不要设置字体名)你需要设置它,然后使用上面的代码。打开属性窗口,单击标签,然后单击字体,然后选择字体名称的名称
答案 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类,但有时你需要干扰内联样式。