2008-09-23 62 views
1

好的,所以我們有客戶端和那些客戶端可以自定義他們的面向網頁。我們給他們的一個選擇是能夠使用其中一個六角輪或任何其他方式來改變圖形的顏色(它就像是一個看起來像一根鐵柵欄)。在ASP.NET中實現用戶控制的樣式更改

所以,我考慮過了,我不知道從哪裏開始。我在本週寄給我的xhtml小夥子,我希望至少在我的腦海裏實現這個實現,然後再發送出去。

關於System.Drawing的一些聲音聽起來很正確,但我之前從未使用過,聽起來好像很複雜。有人有想法嗎?

更新:圖像的顏色將會改變。所以如果我想讓圖片1變成綠色,圖片2變成藍色,我進入我的管理界面並輸入這些十六進制值(可能會給它們一個界面),然後當其他人看着他們的頁面時,他們會看到他們所做的改變。有點像定製Facebook或MySpace頁面(OMFGz soooo Werb 2.0)

謝謝!

+0

知道,你究竟想要什麼。如何創建顏色選擇器?或者如何使用圖形?如果你只想改變顏色,你只需要System.Drawing.Color類型。如果你想要一個網絡顏色選擇器,在互聯網上是大量的例子。 – TcKs 2008-09-23 15:22:21

+0

編輯標題,希望OP不介意,我希望這有助於..我不確定OP想要什麼?顏色變化?更換主題皮膚? – 2008-09-23 15:24:39

回答

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 

然後你可以做我做任何不與圖像...

1

究竟會發生什麼變化?根據所發生的變化,您可以在HTML背景顏色上疊加透明png。只需更改背景顏色,徽標顏色就會改變。當然,這限制了你可以改變的東西,但是你會驚訝地發現你能逃脫多少。

是的,替代方法是在Web服務器上繪製圖像。 Here's a post on it from hanselman

0

我以前在PHP中做過這樣的東西,並且我使用了ImageMagick和GD庫。我不確定ASP和C#是否可以插入.NET框架,但這是一個開始。

0

System.Drawing是基於GDI +的。只有在Worlda網站中繪製位圖時纔有用。

1

EDIT(因爲你改了稱呼):

如果您有少數的六角輪的事情顏色,那麼你可以簡單地使用JavaScript的圖像源來自一些預製的改變圖形。

如果您有大量或可更改的顏色集供用戶選擇,那麼我會使用AJAX調用來生成圖形,使用您可以在網上或在書中找到的相關ASP函數。


我們需要查看您正在討論的框架或圖形。

可能是可行的客戶端CSS的JavaScript,或者可能需要使用PHP一個服務器端圖形生成ASP

0

您的解決方案將取決於圖形的複雜程度。如果你有簡單的圖形(你可以使用MS Paint),那麼你可以使用System.Drawing命名空間來可靠地重新創建圖像。

如果你有複雜的圖形,就像在photoshop或Paint.NET中製作的圖層有多層一樣,你可以通過允許客戶只選擇幾種顏色(4-8-16)和預製圖形匹配選擇。

您可以查看http://www.bobpowell.net/瞭解一些簡潔的想法以及System.Drawing的使用方法。

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

相關問題