<asp:Menu Problem: Text erscheint neben, nicht auf dem Bild



  • Hallo Forum

    ich habe mir nach einer Vorlage im Internet ein TabControl mit menu und MultiView zusammengebastelt was auch gut funktioniert. Nun wollte ich meinen Tabs ein Hintergrundbild geben und einen Text dazu. Das sieht so aus:

    <asp:Menu ID="menuTabControl" Width="980px" runat="server" 
                Orientation="Horizontal" StaticEnableDefaultPopOutImage="False" 
            OnMenuItemClick="menuTabControl_MenuItemClick" Height="16px">
            <Items>  
            <asp:MenuItem  ImageUrl="/img/selected.jpg" Text="Means View" 
            Value="0">  
            </asp:MenuItem>  
            <asp:MenuItem  ImageUrl="/img/not_selected.jpg" Text="Risks"  
            Value="1">  
            </asp:MenuItem>      
            </Items>  
            <StaticMenuStyle HorizontalPadding="0"/>  
            <StaticMenuItemStyle HorizontalPadding="0" ItemSpacing="0" /> 
            </asp:Menu>
    

    Mein Problem ist jetzt dass der Text nicht auf dem Bild sondern neben dem Bild angezeigt wird. Gibt es eine Möglichkeit das Bild für den Tab als Hintergrund zu deklarieren so dass der Text darüber erscheint oder muss ich den Text gleich in mein Bild mit einbauen?

    Danke für eure Hilfe.



  • Hier steht auch eindeutig das es daneben angezeigt wird.

    Ich denke nicht das es da eine direkte Möglichkeit gibt. Wenn das Element kein Hintergundbild unterstützt, kannst du dir Schrift und Bild höchstens vorher zu einem Bild zusammenfügen.



  • Hmm, das ist ja doof. Gibt es eine Möglichkeit dass ich mir das in C# zusammenbaue zu einem Bild, also den Text und das Bild, und das dann anzeigen lasse? Sonst brauche ich ja für jeden Tab zwei Bilder, einmal ausgewählt und einmal nicht ausgewählt.

    Hat da jemand einen Trick auf Lager? Wäre super wenn ihr mir da helfen könntet. Geht das ganze vielleicht auch über CSS irgendwie?



  • samo schrieb:

    Geht das ganze vielleicht auch über CSS irgendwie?

    Ja, sicher, mit background-image.



  • Kann ich dann, wenn ich das über BackgroundImage realisiere, auch auf Events reagieren? Weil ich möchte ja unterschiedliche Bilder für ausgewählte und nicht ausgewählte Tabs haben. CSS ist doch meines Erachtens statisch, oder?



  • Ich meinte inline-Styles, nicht in einer Css-Datei.

    Die fügst du dann mit menu.Style["background-image"] = "bla.gif" ein.
    Wenn das Event nur Clientseitig abläuft, dann machst du das halt über Javascript.


Anmelden zum Antworten