title: BUG in WPF? TextBlock inside Adorner display inverse text when FlowDirection is RightToLeft
body: <p>I'm using adorner to display a watermark inside my textbox. but when i set FlowDirection of window to RightToLeft, text inside adorner (which is textblock) is inverse!!!</p>
  
  <p>Is that a bug or i should change something?</p>
  
  <p><img src="https://i.stack.imgur.com/yxVjm.png" alt="enter image description here"></p>
  
  <p>and here is full code of adorner:</p>
  
  <pre><code>namespace Hezareh.Modules.Accounting  
  {
      using System.Windows;
      using System.Windows.Controls;
      using System.Windows.Data;
      using System.Windows.Documents;
      using System.Windows.Media;
  
  
      internal class WatermarkAdorner : Adorner
      {
          #region Private Fields
  
          private readonly ContentPresenter contentPresenter;
  
          #endregion
  
          #region Constructor
  
          public WatermarkAdorner(UIElement adornedElement, object watermark) :
              base(adornedElement)
          {
              this.IsHitTestVisible = false;
              this.contentPresenter = new ContentPresenter();
              this.contentPresenter.Content = watermark;
              this.contentPresenter.Opacity = 0.5;
              this.contentPresenter.Margin = new Thickness(Control.Margin.Left + Control.Padding.Left, Control.Margin.Top + Control.Padding.Top, 0, 0);
              if (this.Control is ItemsControl &amp;&amp; !(this.Control is ComboBox))
              {
                  this.contentPresenter.VerticalAlignment = VerticalAlignment.Center;
                  this.contentPresenter.HorizontalAlignment = HorizontalAlignment.Center;
              }
  
              // Hide the control adorner when the adorned element is hidden
              Binding binding = new Binding("IsVisible");
              binding.Source = adornedElement;
              binding.Converter = new BooleanToVisibilityConverter();
              this.SetBinding(VisibilityProperty, binding);
          }
  
          #endregion
  
          #region Protected Properties
  
          protected override int VisualChildrenCount
          {
              get { return 1; }
          }
  
          #endregion
  
          #region Private Properties
  
          private Control Control
          {
              get { return (Control)this.AdornedElement; }
          }
  
          #endregion
  
          #region Protected Overrides
  
          protected override Visual GetVisualChild(int index)
          {
              return this.contentPresenter;
          }
  
          protected override Size MeasureOverride(Size constraint)
          {
              // Here's the secret to getting the adorner to cover the whole control
              this.contentPresenter.Measure(Control.RenderSize);
              return Control.RenderSize;
          }
  
          protected override Size ArrangeOverride(Size finalSize)
          {
              this.contentPresenter.Arrange(new Rect(finalSize));
              return finalSize;
          }
  
          #endregion
      }
  
  }
  </code></pre>
  
  <p>and i use it:</p>
  
  <pre><code>        &lt;toolkit:AutoCompleteBox Margin="5" Text="" Name="searchCategoriesTextBox"&gt;
              &lt;i:Interaction.Triggers&gt;
                  &lt;i:EventTrigger EventName="TextChanged"&gt;
                      &lt;i:InvokeCommandAction Command="{Binding SearchCommand}"  /&gt;
                  &lt;/i:EventTrigger&gt;
              &lt;/i:Interaction.Triggers&gt;
              &lt;local:WatermarkService.Watermark&gt;
                  &lt;TextBlock TextAlignment="Left" Text="جستجو" FontFamily="Tahoma" Margin="3, -3, 3, 0" /&gt;
              &lt;/local:WatermarkService.Watermark&gt;
          &lt;/toolkit:AutoCompleteBox&gt;
  </code></pre>
  
  <p>thanks in advance 
  :)</p>