在ASP.NET中实现用户控制的样式更改

时间:2008-09-23 15:18:31

标签: c# asp.net html .net-3.5

好的,我们让客户和那些客户可以自定义他们面向网页的页面。我们给他们的一个选择是能够使用其中一个六角轮或其他任何东西来改变图形的颜色(就像一个看起来像一个看起来很奇怪的酒吧)。

所以,我已经考虑过了,我不知道从哪里开始。我本周要向我的xhtml家伙发送comps,我希望在发送之前至少在我的脑海里完成实现。

关于System.Drawing的一些声音听起来不错,但我之前从未使用过它,听起来很复杂。有没有人有想法?

更新:图像的颜色会发生变化。因此,如果我想要图像1为绿色,图像2为蓝色,我进入我的管理屏幕并输入这些十六进制值(可能会为它们提供一个界面)然后当其他人查看他们的页面时他们会看到他们所做的改变。有点像定制facebook或myspace页面(OMFGz soooo Werb 2.0)

8 个答案:

答案 0 :(得分:1)

究竟会改变什么?根据改变的内容,您可以在html背景颜色上叠加透明png。只需更改背景颜色,徽标颜色就会改变。当然,这限制了你可以改变的东西,但你会惊讶于你可以逃脱多少。

是的,另一种方法是在Web服务器上绘制图像。 Here's a post on it from hanselman

答案 1 :(得分:1)

编辑(因为您更改了标题):

如果六角轮上有少量颜色,那么您可以简单地使用JavaScript从一些预制图形中更改图像源。

如果您有大量或可更改的颜色供用户选择,那么我将使用AJAX调用使用您在网上或书中找到的相关ASP函数生成图形。< /强>


我们需要看到您正在谈论的框架或图形。

可能客户端 CSS JavaScript ,或者可能需要服务器端使用 PHP ASP 等进行图形生成

答案 2 :(得分:1)

您可以搜索this example。但我不确定。

答案 3 :(得分:1)

获取此类内容的标准方法是根据用户选择链接到不同的CSS文件(或类)(您可能希望存储用户选择并在同一用户登录时检索,但这不在此范围内)

如果您使用的是ASP.NET,则可以使用Themes作为控制Web应用程序演示的优化和集中方式。您可以在主题中使用样式表,并轻松地以编程方式在主题之间切换,自动应用相关的样式表。

要了解如何定义ASP.NET页面主题,请查看此链接:

http://msdn.microsoft.com/en-us/library/ms247256.aspx

要了解如何以编程方式在主题之间切换,请点击此链接:

http://msdn.microsoft.com/en-us/library/0yy5hxdk(VS.80).aspx

答案 4 :(得分:1)

我有点直觉,你将使用黑色的白色位图作为基本图像。然后,客户可以选择任何其他颜色组合。这可能不是你的情况,但它应该让我们开始。 (下面的代码是VB - 这就是我所知道的,但转换为C#对你来说应该是微不足道的。)

Imports System.Drawing

Private Function createImage(ByVal srcPath As String, ByVal fg As Color, ByVal bg As Color) As Bitmap
    Dim img As New Bitmap(srcPath)
    For x As Int16 = 0 To img.Width
        For y As Int16 = 0 To img.Height
            If img.GetPixel(x, y) = Color.Black Then
                img.SetPixel(x, y, fg)
            Else
                img.SetPixel(x, y, bg)
            End If
        Next
    Next
    Return img
End Function

然后你可以对图像做任何事......

答案 5 :(得分:0)

之前我在PHP中做过这样的事情,我使用了ImageMagick和GD库。我不确定ASP和C#是否可以使用.NET框架插入,但这是一个开始。

答案 6 :(得分:0)

System.Drawing是基于GDI +的。仅在您在世界网络中绘制位图时才有用。

答案 7 :(得分:0)

您的解决方案将取决于图形的复杂程度。如果您有简单的图形(可以使用MS Paint制作),那么您可以使用System.Drawing命名空间相当可靠地重新创建图像。

如果您有复杂的图形,例如在Photoshop中制作的图形或具有多个图层的Paint.NET,您可以通过允许客户端只选择几种颜色(4-8-16)并预先制作图形与选择相匹配。

您可以查看http://www.bobpowell.net/以了解一些简洁的想法以及如何使用System.Drawing。