2015-11-03 2 views
2

J'ai créé des mises en page de rapport RDLC à l'aide de Visual Studio Report Designer.Comment redimensionner une image si l'image est plus grande que Textbox.Mais elle n'augmente pas l'échelle si elle est plus petite

Je dois afficher l'image dans la zone de texte. L'image a été définie par l'alignement du centre par la méthode Chris Hays. Mais cette méthode doit définir le dimensionnement d'être « Clip »

enter image description here

Il a donc un problème parce que quand l'image dont il obtenait la base de données est plus grande que zone de texte. Il serait coupé comme ci-dessous.

enter image description here

J'ai essayé d'utiliser le calibrage avec le mode "Fit proportionnelle". Il ne peut pas définir l'image centrée par la méthode Chris Hays. Mais si j'utilise le dimensionnement avec "Ajuster à la taille". Je peux ignorer l'image centrée. Mais si une image est très petite. Cela va perdre de la qualité.

Que dois-je faire si je dois

1.Centered l'image

2.Fit à si l'image textbox est plus grande que zone de texte.

3.Taille originale si l'image est plus petite que la zone de texte.

Répondre

1

Je peux résoudre ce problème en a créé deux contrôle d'image.

contrôle Première image -C'était réglée de calibrage "Fit"

seconde image CONTROL- Il a été mis en dimensionnement "Clip" et a utilisé la méthode de Chris Hays pour l'image centrée.

Les deux deux contrôles d'image a été mis en propriété de visibilité par l'expression

si une largeur de l'image est plus grande que zone de texte, le contrôle d'abord d'image montrera et seconde cachera.

Si la largeur de l'image est inférieure à celle de la zone de texte, le premier contrôle d'image est masqué et le second s'affiche.

I peut avoir une largeur de l'image par ce code

 =(System.Drawing.Image.FromStream(new System.IO.MemoryStream(CType(First(Fields!FILE_BINARY_DATA.Value, "My Table"),Byte()))).Width /96) 

est dpi

Après avoir connu une largeur d'image à partir de ci-dessus expression. je vais l'utiliser pour définir la visibilité propriété de première image comme ces

 =iif((imgWidthInch.Value > 2.6 ),false,true) 

2,6 est de ma zone de texte Largeur.

Et définir la visibilité de la deuxième image par l'autre.

1

Si vous utilisez les mêmes tailles du tutoriel, vous pouvez essayer de définir la propriété Sizing en utilisant l'expression suivante:

=IIF(Round((3.5-System.Drawing.Image.FromStream(new System.IO.MemoryStream(CType(Fields!LargePhoto.Value,Byte()))).Width 
/96)/2,2)>0, "Clip", "Fit") 
+1

Je pense que la propriété Dimensionnement du contrôle Image ne peut pas être définie avec Expression. –