2012-02-09 11 views
3

私はVisual studio 2008を使用しており、式を使用してフォントサイズを調整できる必要があります。 は、これまでのところ、私は、VB 2008を使用してフォントを調整する方法は?

IIf((Len(First(Fields!CardID.Value, "data"))> 30), "12 pt", "72 pt")

を持っている私は、全文字サイズを取得するために、LEN変数を参照する必要があります知っているが、私はどのようにわかりません。

アドバイスをいただければ幸いです。下記Winformsのために予め

+0

,, = STR(60-LEN(ファースト(フィールズ!Full_Name.Value、 "データ")))長い名前このdosen'tのためしかし、ほとんどの時間の作品+ "PT" 。私は最大のフィットのためのサイズに関係なくボックスを埋めることができる必要があります – Leigh

+0

WinformsまたはWPFを使用していますか?そして、あなたが書き込もうとしている「箱」は何ですか? – Stewbob

答えて

2

おかげで、サンプルです。ちょっと面倒ですが、かなりうまくいきます。この例では、ボタンButton1、テキストボックスTextBox1、およびラベルLabel1を持つフォームがあります。 Button1をクリックすると、TextBox1にあるテキストがLabel1の空き領域に収まります。 WPFのために

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 

    If TextBox1.Text = "" Then 
    Exit Sub 
    End If 

    Dim fnt As New Font("Tahoma", 1, FontStyle.Regular) 
    Dim g As Graphics = Me.CreateGraphics 

    Dim i As Int32 = 0 
    Dim boxWidth As Integer = Label1.Width 
    Dim textWidth As Double = 0 
    Dim someSmallAmountToAccountForLabelPadding As Int16 = 5 

    Do While textWidth < boxWidth - someSmallAmountToAccountForLabelPadding 
    i += 1 
    fnt = New Font("Tahoma", i, FontStyle.Regular) 
    textWidth = g.MeasureString(TextBox1.Text, fnt).Width 
    Loop 

    Label1.Text = TextBox1.Text 
    Label1.Font = fnt 

    g.Dispose() 

End Sub 

enter image description here


、あなたも任意のコード、ちょうどビューボックスを必要としません。以下に示すXAMLには、TextBoxのあるウィンドウtbx1とTextBlockがあります。あなたは自動的にビューボックスは、それが中にある利用可能なスペースに収まるようにダウンスケールアップまたはのTextBlockに適合さtbx1に入力するものは何でも。

<Grid> 
     <Grid.RowDefinitions> 
      <RowDefinition Height="1*"/> 
      <RowDefinition Height="1*"/> 
     </Grid.RowDefinitions> 
     <TextBox Margin="20,8" Name="tbx1"/> 
     <Viewbox Grid.Row="1" Stretch="Fill"> 
      <TextBlock Text="{Binding ElementName=tbx1, Path=Text}" /> 
     </Viewbox> 
    </Grid> 

あなたはさまざまな効果を達成するためのビューボックスのストレッチプロパティを試すことができます。 enter image description here

また、私はこれを持って
関連する問題