2012-05-04 10 views
7

Va bene, prova come posso, non posso per la vita di me liberarmi di questo minuscolo bordino attorno ai miei bottoni.Rimuovere tutto lo spazio extra attorno a un pulsante con un'immagine?

Modifica: dovrei menzionare, nel caso in cui non l'ho chiarito, questi sono pulsanti con un'immagine su di essi, impostati su piatto con il pulsante dimensionato per l'immagine.

immagini qui sotto:

enter image description here Numero uno, non posso per la vita di me ottenere questi confini per andare via. Ho controllato tutto quello che riesco a pensare. Sono:

  • piatto
  • bordo 0
  • senza margini
  • senza imbottitura
  • dimensionato manualmente alla dimensione dell'immagine (75 pixel)
  • in un layout di tabella in cui le colonne sono tutti:
    • dimensionati manualmente alla larghezza dell'immagine (75px)
    • bordi

Nulla sembra davvero "lavoro" per sbarazzarsi di questi. Se ridimensiono le colonne in modo che siano 74 px anziché 75 px, la maggior parte di esse scompare, ma alcune rimangono. Ho triplicato e quadruplicato le immagini, e loro non hanno nulla su cui possa capitare che questo causi questo ... nessuna trasparenza intorno ai confini, sicuramente nessun confine che assomigli.

Il che mi porta al secondo problema:

enter image description here

pulsante Impostazioni quando finestra è piccola ...

enter image description here pulsante Impostazioni quando finestra è disteso.

Il pulsante Impostazioni si trova anche nello stesso pannello di layout tabella.

Ho controllato anche tutte le impostazioni sul pannello di layout della tabella .. Non riesco a trovare alcuna padding o margine o qualsiasi impostazione che suggerisca che ciò dovrebbe accadere.

Qualcuno ha qualche esperienza con questo? Cosa mi manca ..?

+0

Quando tutto il resto fallisce ... Control.Region –

risposta

0

Hai provato una barra degli strumenti/striscia/come si chiama in questi giorni? Probabilmente non mi sarà d'aiuto in quanto credo che funzioni a tuo nome, ma ne vale la pena.

Alla fine è possibile gettare i pulsanti nella spazzatura e scrivere il proprio controllo. Un singolo controllo che gestisce i pulsanti N funzionerà bene qui.

Non capisco il tuo secondo problema. Qual è il problema? Sarà riparato se rotoli comunque il tuo controllo.

+1

Questo non è destinato a essere una barra degli strumenti/striscia, dovrebbero apparire come schede. Un controllo a schede non è del tutto adatto a causa di problemi che ho avuto con il suo aspetto in XP, utilizzando la skin progettata dal client. Quindi i pulsanti che simulano le schede (attivano il nascondiglio e la visualizzazione dei pannelli) lo sono. I pulsanti sono in realtà controlli personalizzati; Ho una correzione temporanea andando a sovrascrivere OnPaint e disegnandolo da solo, ma questo causa problemi altrove, dato che ho altre istanze di quei controlli altrove nell'app. Quando viene ridimensionato un dialogo con essi, non vengono sempre ridisegnati correttamente. – trycatch

+0

anche il secondo problema è il pulsante con il piccolo ingranaggio che sviluppa la sindrome del "riempimento della linea bianca" quando la finestra di dialogo è allungata. (Nota bene se vicini insieme però?) – trycatch

+0

Questo è il problema con WinForms: i controlli non sono solo costosi (ci sono risorse di sistema allocate con ogni singolo controllo), a loro non piace esistere back-to-back senza problemi. Ogni controllo è un oggetto finestra di sistema e ognuno è una piccola isola a sé. Quando hai bisogno di impacchettare i "controlli" insieme pixel perfetto, o hai bisogno che la tua app funzioni meglio, la soluzione è (solitamente) la creazione di un singolo controllo che fornisce l'aspetto e la funzionalità dei bit più complessi all'interno (pulsanti nel tuo caso). Quanti "controlli" pensi che compongono i widget su una barra multifunzione di Office? Precisamente uno. – Tergiver

0

Pur non essendo una correzione per il problema distanza, come una soluzione si può fare che grigio sfumato attualmente "dietro" l'immagine del pannello "schede" e controllo in un BackgroundImage per la TableLayoutPanel utilizzando BackgroundImageLayout di Stretch. Pur non risolvendo il problema della spaziatura, lo renderebbe impercettibile.

0

Scrivere un controllo winforms ha le sue sfide (esperienza che parla qui). Sono d'accordo sul fatto che questo è ciò che è necessario comunque. A seconda del progetto, potresti prendere in considerazione l'utilizzo di XAML e WPF. Fornisce quei dettagli che sembra essere in cerca nell'applicazione.

Ci sono modi per ospitare i controlli XAML in un'app Winform, ma se si è andati su questa strada sarebbe meglio creare un'applicazione WPF nativa. È vero anche il contrario (controlli winform in un'app WPF).

0

Hai controllato se l'immagine ha pixel trasparenti intorno ai pixel grafici che vuoi?

Può essere una soluzione di coltura semplice.

1

Soluzione semplice: utilizzare direttamente un PictureBox come se fosse un pulsante. Puoi cambiare la tua immagine con il mouse o con il mouse.

Problemi correlati