1. Modifica el archivo AssemblyInfo.cs y agrega esto:
[assembly: System.Web.UI.WebResource("CustomControls.Styles.GridStyles.css", "text/css"), PerformSubstitution = true)]
Donde CustomControls es tu proyecto y style tu carpeta donde tienes el css, prácticamente es ponerlo como se formaría un namespace.
2. Al archivo .css aplicale la propiedad de BuildAction a Embedded Resource, para que se embeba en nuestra dll.
3. Ahora si, el código que necesitamos es el siguiente:
protected override void OnPreRender(EventArgs e)
{
bool linkIncluded = false;
foreach (Control c in Page.Header.Controls)
{
if (c.ID == "GridStyle")
{
linkIncluded = true;
}
}
if (!linkIncluded)
{
HtmlGenericControl csslink = new HtmlGenericControl("link");
csslink.ID = "GridStyle";
csslink.Attributes.Add("href", Page.ClientScript.GetWebResourceUrl(this.GetType(), "CustomControls.Styles.GridStyles.css"));
csslink.Attributes.Add("type", "text/css");
csslink.Attributes.Add("rel", "stylesheet");
Page.Header.Controls.Add(csslink);
}
}
4. Si quieres hacer una referencia a una imagen pues embeber la imagen y referenciarla de esta manera en tu css:
background: url('<%=WebResource("CustomControls.Styles.Cross.png")%>') no-repeat 95% 50%;
Como ven esto es muy facil de implementar y espero que les sea de utilidad.
No hay comentarios:
Publicar un comentario