ScrollablePictureBoxUserControl. cs
Description du code
ScrollablePictureBoxUserControl.cs est un fichier du projet BrolDev.Ce fichier est situé dans /var/www/bin/sniplets/bibliobrol/broldev/src/.
Projet BrolDev : Librairie de composants réutilisables pour les applications BrolDev en CSharp.
Code source ou contenu du fichier
Code c# (ScrollablePictureBoxUserControl.cs) (171 lignes)
using System; using System.ComponentModel; using System.Drawing; using System.Windows.Forms; namespace be.gaudry.view.controls { public partial class ScrollablePictureBoxUserControl : UserControl { #region declarations and constructors private float zoom; private Bitmap bitmap; public ScrollablePictureBoxUserControl() { zoom = 0.05F; InitializeComponent(); /* this.SetStyle(ControlStyles.UserPaint, true); this.SetStyle(ControlStyles.AllPaintingInWmPaint, true); this.SetStyle(ControlStyles.DoubleBuffer, true); this.SetStyle(ControlStyles.ResizeRedraw, true); */ } #endregion #region properties /// <summary> /// Image to display in the scrollable thumb panel /// </summary> [ Category("Image options"), Description("Bitmap to display in the scrollable picturebox") ] public Bitmap Bitmap { get { return bitmap; } set { if (value != null && value.Width > 1 && value.Height > 1) { bitmap = value; thumbPB.Image = bitmap; //setThumbPanel(); //thumbPanel.AutoScrollMinSize = thumbPanel.Size; //zoom = (float)bitmap.Width / thumbPanel.Width; zoom = (float)thumbPanel.Width / bitmap.Width; zoomThumbTrkB.Minimum = 5; zoomThumbTrkB.Maximum = 210; setZoomTrkValue(); zoomThumbTrkB.Visible = true; thumbSizeLbl.Visible = true; thumbPB.Invalidate(thumbPB.ClientRectangle); } } } /// <summary> /// Image to display in the scrollable thumb panel /// </summary> [ Category("Image options"), Description("Zoom to apply on the displayed image") ] public float Zoom { get { return zoom; } /*set { if (value != null) { zoom = value; if (bitmap != null) { setZoomTrkValue(); zoomThumbTrkB.Visible = true; thumbSizeLbl.Visible = true; } } }*/ } public void setBitmap(Bitmap newBitmap) { thumbPB.Image = newBitmap; } public void zoomIn() { zoom += ((float)zoomThumbTrkB.LargeChange / 100); int i = zoomThumbTrkB.Value+zoomThumbTrkB.LargeChange; if (i > zoomThumbTrkB.Maximum) { zoomThumbTrkB.Maximum = i; zoomThumbTrkB.Invalidate(); } setThumbPanel(); setZoomTrkValue(); } public void zoomOut() { zoom -= ((float)zoomThumbTrkB.LargeChange / 100); setThumbPanel(); setZoomTrkValue(); } public void zoomToFit() { thumbPanel.AutoScrollMinSize = thumbPanel.Size; zoom = (float)bitmap.Width / thumbPanel.Width; thumbPanel.Invalidate(thumbPanel.ClientRectangle); zoomThumbTrkB.Value = zoomThumbTrkB.Minimum; } public void zoomToRealSize() { zoom = 1F; setThumbPanel(); setZoomTrkValue(); } private void setZoomTrkValue() { int trkVal = (int)(zoom * 100); if (trkVal < zoomThumbTrkB.Minimum) trkVal = zoomThumbTrkB.Minimum; if (trkVal > zoomThumbTrkB.Maximum) trkVal = zoomThumbTrkB.Maximum; zoom = (float)trkVal / 100; zoomThumbTrkB.Value = trkVal; } #endregion private void zoomThumbTrkB_Scroll(object sender, EventArgs e) { zoom = (float)zoomThumbTrkB.Value / 100; setThumbPanel(); } private void setThumbPanel() { thumbPanel.Invalidate(thumbPanel.ClientRectangle); } private void thumbPanel_Paint(object sender, PaintEventArgs e) { /*if (bitmap != null) { Graphics g = e.Graphics; g.DrawImage(bitmap, new Rectangle( thumbPanel.AutoScrollPosition.X + ((thumbPanel.Width - newWidth) / 2), thumbPanel.AutoScrollPosition.Y + ((thumbPanel.Height - newHeight) / 2), newWidth, newHeight) ); }*/ } private void thumbPB_Paint(object sender, PaintEventArgs e) { if (bitmap != null) { zoom = (float)thumbPB.Width / bitmap.Width; zoomThumbTrkB.Minimum = (int)(((float)thumbPanel.Width / bitmap.Width)*100); thumbSizeLbl.Text = String.Format("Affichage : {0}% ({1} * {2} pixels)", (int)(zoom*100), thumbPB.Width, thumbPB.Height); } } } }
Structure et Fichiers du projet
Afficher/masquer...Icône | Nom | Taille | Modification |
Pas de sous-répertoires. | |||
Icône | Nom | Taille | Modification |
| _ | Répertoire parent | 0 octets | 1732237320 22/11/2024 02:02:00 |
Utilisation de l'explorateur de code
- Navigation :
- Un clic sur une icône de répertoire ouvre ce répertoire pour en afficher les fichiers.
- Lorsque le répertoire en cours ne contient pas de sous-répertoires il est possible de remonter vers le répertoire parent.
- La structure de répertoires en treetable (tableau en forme d'arborescence) n'est plus possibledans cette version.
- Un clic sur une icône de fichier ouvre ce fichier pour en afficher le code avec la coloration syntaxique adaptée en fonction du langage principal utilisé dans le fichier.
- Affichage :
- Il est possible de trier les répertoires ou les fichiers selon certains critères (nom, taille, date).
- Actions :
- Les actions possible sur les fichiers dépendent de vos droits d'utilisateur sur le site. Veuillez activer le mode utilisateur pour activer les actions.
Version en cache
22/11/2024 02:02:00 Cette version de la page est en cache (à la date du 22/11/2024 02:02:00) afin d'accélérer le traitement. Vous pouvez activer le mode utilisateur dans le menu en haut pour afficher la dernère version de la page.Document créé le 16/10/2009, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/cs-broldev-source-rf-view/controls/ScrollablePictureBoxUserControl.cs.html
L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.