- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用装饰器在文本框中显示水印。但是当我将窗口的 FlowDirection 设置为 RightToLeft 时,装饰器内的文本(即文本 block )是相反的!!!
这是一个错误还是我应该改变什么?
这是装饰器的完整代码:
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 && !(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
}
}
我用它:
<toolkit:AutoCompleteBox Margin="5" Text="" Name="searchCategoriesTextBox">
<i:Interaction.Triggers>
<i:EventTrigger EventName="TextChanged">
<i:InvokeCommandAction Command="{Binding SearchCommand}" />
</i:EventTrigger>
</i:Interaction.Triggers>
<local:WatermarkService.Watermark>
<TextBlock TextAlignment="Left" Text="جستجو" FontFamily="Tahoma" Margin="3, -3, 3, 0" />
</local:WatermarkService.Watermark>
</toolkit:AutoCompleteBox>
提前致谢:)
最佳答案
好吧,最后我找到了另一个解决方案来解决这个问题。我使用 RenderTransofrm 像这样在装饰器内部镜像控制:
<local:WatermarkService.Watermark>
<TextBlock Name="watermarkTextBox"
Text="{x:Static resources:Resources.SearchCodingTreeView}"
RenderTransformOrigin="0.5,0.5" TextAlignment="Right">
<TextBlock.RenderTransform>
<ScaleTransform ScaleX="-1" />
</TextBlock.RenderTransform>
</TextBlock>
</local:WatermarkService.Watermark>
RenderTransformOrigin="0.5,0.5"
将枢轴置于控制中心并 ScaleX="-1"
水平翻转它。
关于c# - WPF 中的 BUG?当 FlowDirection 为 RightToLeft 时,Adorner 中的 TextBlock 会显示反转文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9591913/
操作系统: 微软视窗 8.1 开发应用程序:Microsoft Visual Studio 2013(WPF 应用程序开发) 我已经从 Windows 7 转移到了 Windows 8.1,现在我在
我有一个 FormattedText 项目。我将 flowdirection 设置为 RightToLeft,但我不确定它是如何工作的。它确实不一致地改变了我的琴弦。 我想象它只需要一个字符串,并向后
我有一个 DataGrid,其 FlowDirection 设置为“RightToLeft”。问题是当显示负数时,减号显示在对面。 将单元格本身的 FlowDirection 设置为“LeftToRi
有没有办法根据使用的 Unicode 字符自动检测 TextBox 中的 FlowDirection? 如果您在 Excel 中有阿拉伯语文本,它会自动对齐到单元格的右侧。我想在我的 WPF 应用程序
我正在使用装饰器在文本框中显示水印。但是当我将窗口的 FlowDirection 设置为 RightToLeft 时,装饰器内的文本(即文本 block )是相反的!!! 这是一个错误还是我应该改
我是一名优秀的程序员,十分优秀!