Avatar billede daxiez Nybegynder
09. maj 2006 - 09:10 Der er 16 kommentarer og
1 løsning

Imagebutton med text property ?

Kan man lave en Imagebutton med en text property ? skal lave kanpper til forskellige sprog, så ville være lidt fedt. koder i C#
Avatar billede dr_chaos Nybegynder
09. maj 2006 - 10:13 #1
så skal du lave en custom implementering af knappen.
Men det er jeg ikke den store haj til
Avatar billede daxiez Nybegynder
09. maj 2006 - 10:15 #2
Det var lige det jeg heller ikke rigtig gad til at lave. Findes der ikke et sted man kan downloade sådan nogle smarte controls ?
Avatar billede dr_chaos Nybegynder
09. maj 2006 - 10:17 #3
måske.
Jeg kender ikke umiddelbart nogen.
Jeg tror ikke det vil være så vanskeligt at lave.
Men det er nok snepnet du skal have fat i.
Avatar billede daxiez Nybegynder
09. maj 2006 - 10:28 #4
hehe ja det er det sikkert ! han kommer nok senere !
Avatar billede dr_chaos Nybegynder
09. maj 2006 - 10:29 #5
Ja han er ikke på lige nu :)
Avatar billede snepnet Nybegynder
09. maj 2006 - 11:17 #6
Du må lave det med noget gdi+, og generere billedet fra gang til gang (du kan eventuelt cache dem).

Det er relativt enkelt at lægge noget tekst på et billede, og hvis du laver dig en handler der kan levere billeder til dig - kan du indbygge funktionaliteten i den. Så kan du lægge tekst på alle billeder - også dem du viser på knapper.

Du kan lige få et lille eksempel at gå ud fra:

<%@ WebHandler Language="C#" Class="ImageServer" %>

using System;
using System.Web;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
using System.Web.UI;

public class ImageServer: IHttpHandler
{   
    public void ProcessRequest (HttpContext context)
    {
        string imageName = context.Request.QueryString["imageName"];
        string imageText = context.Request.QueryString["imageText"];
       
        Bitmap bmp = Resources.Resource.ResourceManager.GetObject(imageName) as Bitmap;       
       
        if (bmp != null)
        {
            if (imageText != null)
            {
                using (Graphics g = Graphics.FromImage(bmp))
                using (Font font = new Font("Verdana", 10, FontStyle.Regular | FontStyle.Regular))
                using (SolidBrush brush = new SolidBrush(Color.Red))
                {
                    g.DrawString(String.Format(imageText), font, brush, new PointF(5F, 10F));
                }
            }
           
            context.Response.ContentType = "image/jpeg";
            bmp.Save(context.Response.OutputStream, ImageFormat.Jpeg);
        }
    }

    public bool IsReusable
    {
        get
        {
            return true;
        }
    }
}

Så kan du indsætte knapper sådan her:

<asp:ImageButton ID="imgBtn" runat="server" ImageUrl="~/ImageServer/ImageServer.ashx?imageName=tuba&imageText=yuhah" />

I eksemplet hentes der et billede fra en ressource, som det ikke er sikkert at du benytter, men du har jo så nok en anden måde at hente billeder på.

Du kan pakke det lidt pænere ind i en kontrol - altså så du har en ImageTextButton eller lignende - men du skal under alle omstændigheder have muligheden for at hente det resulterende bille via en url, så imageserver-delen skal du lave.

Kan du klare dig med ovenstående?

Mvh
(.Text er for øvrigt en property på en asp.net 2.0 ImageButton, men det er ikke meningen at man skal benytte den direkte - og den medfører ikke at du får printet tekst på billedet)
Avatar billede daxiez Nybegynder
09. maj 2006 - 14:34 #7
Det set godt ud, men når ikke at prøve det før imorgen !)
Avatar billede snepnet Nybegynder
09. maj 2006 - 14:46 #8
Du prøver det bare når det passer :o)
Mvh
Avatar billede daxiez Nybegynder
17. maj 2006 - 10:46 #9
Tror jeg skal have lige lidt mere hjælp til den her ! jeg bruger
bmp.Save(Response.OutputStream, bmp.RawFormat);
til at skrive billedet ud med, men så tegner den kun mit billede og ikke resten af min side !
Avatar billede daxiez Nybegynder
17. maj 2006 - 10:55 #10
min kode ser sådan her ud :

Bitmap bmp = new Bitmap(Server.MapPath("pictures/menukanp.jpg"));
            Graphics g = Graphics.FromImage(bmp);
            g.SmoothingMode = SmoothingMode.AntiAlias;
            g.DrawString("test string", new Font("Verdana", 10), SystemBrushes.WindowText, 1, 1);
            Response.ContentType = "image/jpeg";
            bmp.Save(Response.OutputStream, bmp.RawFormat);
Avatar billede snepnet Nybegynder
18. maj 2006 - 23:49 #11
har du lavet det som beskrevet - altså du har en side med et billede på, og ImageUrl på dit billede er så sat til din handlers url?
(du kan evt. vise al din kode).
Mvh
Avatar billede daxiez Nybegynder
29. juni 2006 - 17:06 #12
Så er det tid til at se lidt på den her igen !

Hvis du gider vil jeg meget gerne have forklaret lidt om ashx ! hvad er det lige for en størrelse ?
Avatar billede snepnet Nybegynder
29. juni 2006 - 23:00 #13
Mht. det med din serverside form, så kan du sådan set bare lægge den på din masterpage. Det er helt almindeligt at du har en masterpage der holder form'en.
Mht. til hvorvidt det skulle være en bug, så kan jeg ikke genskabe det problem du beskriver (har lavet et setup, hvor jeg lægger min form på content-siderne som du har gjort).
Der er ikke noget i din løsning der ser uhendsigtsmæssigt ud - bortset fra den med at lægge forms på content-pages.
Mvh
Avatar billede daxiez Nybegynder
30. juni 2006 - 08:11 #14
hmm Det var vist til en anden tråd den Kommentar snepnet ?
Avatar billede snepnet Nybegynder
30. juni 2006 - 11:21 #15
HAHA .... Ja det må du nok sige :o)
Kopierer som oftest teksten inden jeg poster, så den ikke forsvinder hvis der er gået for lang tid siden jeg åbnede vinduet... Havde tydeligvis ikke det forventede i clipboardet :o)

Jeg havde blot skrevet, at ashx er normal extension for en generisk handler, hvilket blot er en klasse der implementerer interfacet IHttpHandler. Implementerer en klasse dette interface kan den fungere som handler for et request.

Og.... siden du ikke har behov for en webform, men blot skal returnere et billede - er det smart blot at lave en handler der ikke giver dig det overhead der er med en form (Page).

Mvh
Avatar billede daxiez Nybegynder
09. august 2006 - 11:18 #16
smid et svar ! har løst problemet udfra dit gdi+ eksempel !
Avatar billede snepnet Nybegynder
09. august 2006 - 11:54 #17
Et svar kommer her :o)
Mvh
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester