Rechteck füllen mit Texturebrush



  • hallo, ich habe ein Rechteckt erstellt und fülle es mit einem Texturebrush dem ich eine Bitmap übergeben habe. Aber es sieht so aus das das Bitmap nicht in der oberen linken Ecke des Rechtecks beginnt. Es sollte aber die Bitmap genau an der oberen linken Ecke anfangen... kann jemand helfen, warum das so ist oder wie man das ändern kann !?

    System::Void Form1::splitContainer1_Panel1_Paint(System::Object^ Sender,        System::Windows::Forms::PaintEventArgs^  e) {
    
     Graphics^ g = e->Graphics;
    
    [...]
    
    Bitmap^ bimage;
    TextureBrush^ tbsh;
    
    bimage = gcnew Bitmap("Images\\test.bmp");
    tbsh = gcnew TextureBrush(bimage,WrapMode::Tile);
    
    Rectangle rect = Drawing::Rectangle(x,y,width,height);
    
    g->FillRectangle(tbsh,rect);
    
    }
    

    schon jetzt Vielen Dank für Antworten



  • Welche Werte haben denn x und y beim Zeichnen ?



  • naja irgendwelche Werte, jenach dem wo ich es hinhaben will in meinem Panel.

    also das is willkürlich...



  • Keiner ne Idee ??



  • hat das bitmap vieleicht einen rand mit drin? bei mir war es so wenn ich Grafiken erstellt habe und nicht Korrekt gezoomt habe dann hatte ich schon mal ab und an einen ein pixel breiten rand mit drin, oder schreibt doch gleich statt
    x und y
    0 und 0



  • Ne der Rand isses leider net, das Bild is regelrecht um die Hälfte verschoben.
    Also sieht so aus, wie wenn er ich sagmal bei Pixel 40 von 100 anfängt zu zeichen und den Rest hinten dran hängt.

    Sieht einfach nur sehr komisch aus und ich kann es mir net erklären...



  • Hast Du denn mal 0,0 angegeben bzw. x und y überprüft ?

    Wenn ja mach ein minimal Beispiel als Download zum Nachvollziehen.



  • also für alle die auch wissen wollen wies geht, meine lösung, meines problems

    ich musste ja die koordinaten des brushes auf die gleichen bekommen wie mein
    rechteck und das geht so:

    tbsh->TranslateTransform(x,y);

    so kann den koordinatenursprung des brushes auf die obere linke ecke meines
    rechteckes setzen.

    vielen danke für alle bemühungen, bis bald


Anmelden zum Antworten