webForumDet fria alternativet

ASP.NET (VB) UC för png-halvtransparens.

Programmering

0 svar · 4 221 visningar · startad av Travoni

Medlem sedan okt. 20041 556 inlägg
Frågan#1

Eftersom att IE inte kan visa halvtransparenta png-bilder så skapade jag en liten work-around.
Tips på förbättringar/rättelser mottages varmt.

<%@ Control Language="VB" ClassName="pngControl" %>	 

<%@ Import Namespace="system" %>
<%@ Import Namespace="system.web.ui" %>

<script runat=server>
    
    Private strimageUrl, strStyle, strCssClass, strAlternateText, strHeight, strWidth, strImageAlign As String
    
    Protected Function GetBrowser() As String
        Dim br As System.Web.HttpBrowserCapabilities = Request.Browser
        Dim sBrowserName As String = UCase(br.Browser)
        Return sBrowserName.ToString()
    End Function

    'imageUrl
    Public WriteOnly Property imageUrl() As String
        Set(ByVal value As String)
            strimageUrl = value
        End Set
    End Property
    
    'style
    Public WriteOnly Property style() As String
        Set(ByVal value As String)
            If GetBrowser() = "IE" Then
                strStyle = value
            Else
                strStyle = " style=""" & value & """ "
            End If
        End Set
    End Property
    
    'CssClass
    Public WriteOnly Property CssClass() As String
        Set(ByVal value As String)
            strCssClass = " class=""" & value & """"
        End Set
    End Property
    
    'AlternateText
    Public WriteOnly Property AlternateText() As String
        Set(ByVal value As String)
            strAlternateText = value
        End Set
    End Property
    
    'Height
    Public WriteOnly Property Height() As String
        Set(ByVal value As String)
            If GetBrowser() = "IE" Then
                strHeight = "height:" & value & "px;"
            Else
                strHeight = " height=""" & value & """"
            End If
        End Set
    End Property
    
    'Width
    Public WriteOnly Property Width() As String
        Set(ByVal value As String)
            If GetBrowser() = "IE" Then
                strWidth = "width:" & value & "px;"
            Else
                strWidth = " width=""" & value & """"
            End If
        End Set
    End Property
    
    'ImageAlign
    Public WriteOnly Property ImageAlign() As String
        Set(ByVal value As String)
            If GetBrowser() = "IE" Then
                strImageAlign = "float:" & value & ";"
            Else
                strImageAlign = " align=""" & value & """"
            End If
        End Set
    End Property
    
    'OnInit
    Protected Overrides Sub OnInit(ByVal e As EventArgs)
        If Not Me.ID Is Nothing Then ID = "id=""" & Me.ID & """ "
        If GetBrowser() = "IE" Then
            pngImg.Text = "<span " & ID & strCssClass & "title=""" & strAlternateText & _
            """ style=""" & strStyle & strImageAlign & strWidth & strHeight & _
            "display:inline-block;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" & strimageUrl & _
            "', sizingMethod='scale');""></span>"
        Else
            pngImg.Text = "<img " & ID & strCssClass & "src=""" & strimageUrl & _
            """" & strImageAlign & " alt=""" & strAlternateText & """" & strHeight & _
            """" & strWidth & strStyle & " title=""" & strAlternateText & """>"
        End If
    End Sub
    
</script>
<asp:Literal runat="server" id="pngImg"></asp:Literal>

RED. / Jag ser att WF bråkar med koden. Ta bort mellanrummet mellan AlphaImageLoa der

255 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)