1
私はテキストボックスと長方形を持っています。テキストボックスの内容が変更されると、四角形が自動的に更新されます。私は視覚的なブラシで矩形塗りつぶしを描いています。問題は、ビジュアルブラシがテキストボックスの実際の外観と一致しないことです。私は何をすべきか。ここに私のコードだ: ビジュアルブラシ奇妙な振る舞い
私はテキストボックスと長方形を持っています。テキストボックスの内容が変更されると、四角形が自動的に更新されます。私は視覚的なブラシで矩形塗りつぶしを描いています。問題は、ビジュアルブラシがテキストボックスの実際の外観と一致しないことです。私は何をすべきか。ここに私のコードだ: ビジュアルブラシ奇妙な振る舞い
がオンに基づいて、あなたのXAMLに小さな変更を加えた:
<StackPanel HorizontalAlignment="Center" VerticalAlignment="Center">
<TextBox Name="txtBox"/>
<Rectangle Height="{Binding ElementName=txtBox, Path=ActualHeight}"
Width="{Binding ElementName=txtBox, Path=ActualWidth}">
<Rectangle.Fill>
<VisualBrush Visual="{Binding ElementName=txtBox}"/>
<Rectangle.Fill>
<Rectangle.LayoutTransform>
<ScaleTransform ScaleY="-0.75"/>
</Rectangle.LayoutTransform>
</Rectangle>
</StackPanel>
ここで私は、いくつかの文字を削除し、私が得たものを見て、その後、
を「ビジュアルブラシ」を書きましたあなたのコメントの情報。問題は、TextBlock
がBackground
を持っていないので、VisualBrush
がレンダリングのためにTextBlock
の可視部分を見つけて、それをBindingsに基づいてTextBlock
の全長に伸ばしていると思います。 TextBlock
はBackground="Transparent"
を持っていますが、それは
を更新せずに、あなたの問題を再現するとき
次のXAMLは、正常に動作します:をチャットでは、OPは、バインディングWidth
が文字を削除するときに縮小するから
TextBox
を保ったことがわかりました。したがって、
Width
バインディングを削除すると、センタリングの問題も修正されます。
<StackPanel HorizontalAlignment="Center" VerticalAlignment="Center">
<TextBox Name="txtBox"/>
<TextBlock Name="textBlock" Text="{Binding ElementName=txtBox, Path=Text}"
Background="Transparent"/>
<Rectangle Height="{Binding ElementName=textBlock, Path=ActualHeight}">
<Rectangle.Fill>
<VisualBrush Visual="{Binding ElementName=textBlock}"/>
</Rectangle.Fill>
<Rectangle.LayoutTransform>
<ScaleTransform ScaleY="5"/>
</Rectangle.LayoutTransform>
</Rectangle>
</StackPanel>
正確に何が得られているか(表示と画像が最高になるような)いくつかの情報を提供する必要があります。 –
あなたのコードを空のウィンドウにドロップするだけで、私が知る限り問題は再現されません。 –
@Meleak私は、実行時にテキストボックスの内容を変更して、それを変更しようとすると問題だと思っています。 – Cobold