۱۳۹۱ بهمن ۱, یکشنبه

رفع مشکل باگ مربوط به Adorner


چند وقت پیش درباره باگ مربوط به Adorner  پستی رو نوشتم. بلاخره راه حل درست و حسابی براش پیدا کردم. اینبار به جای استفاده از تصویر از قابلیت RotateTransform مربوط به کنترل های WPF استفاده می کنیم. به این صورت:

 <TextBox VerticalAlignment="Center" HorizontalAlignment="Center" Width="200">
            <local:WatermarkService.Watermark>
                <TextBlock Name="watermarkTextBox" Text="جستجو" RenderTransformOrigin="0.5,0.5" TextAlignment="Right">
                    <TextBlock.RenderTransform>
                        <ScaleTransform ScaleX="-1" />
                    </TextBlock.RenderTransform>
                </TextBlock>
            </local:WatermarkService.Watermark>
        </TextBox>
همون طور که می بینید ScaleTransform یه خصوصیت به اسم ScaleX داره که اگه به اون عدد منفی بدین، کنترل به صورت معکوس نمایش داده میشه. دقیقا" همون چیزی که می خواستیم! ولی ممکنه متن داخل کنترل دچار جابجایی بشه که به کمک RenderTransformOrigin می تونیم موقعیتش رو تنظیم کنیم.