【发布时间】:2013-12-09 11:49:47
【问题描述】:
我的用户希望能够在 xaml 文本框中输入 ¼ 等特殊字符。 我可以在这里和现在通过按住 left-alt 并写 172 来写这个问题 - 这将产生一个 '¼'
但是在我的 xaml 文本框中,当我这样做时,什么也没有发生。我使用 WPF/XAML: 我的用户如何编写特殊的 ASCII 或 unicode 字符?
<TextBox x:Name="_text"
Text="{Binding ..., UpdateSourceTrigger=PropertyChanged}"
MaxLength="..."
Style="{StaticResource NoteInputStyle}"
Margin="1"
MinHeight="40"
MaxHeight="80" />
<Style x:Key="NoteInputStyle"
TargetType="TextBox"
BasedOn="{StaticResource TextBoxInputStyle}">
<Setter Property="AcceptsReturn"
Value="True" />
<Setter Property="AcceptsTab"
Value="True" />
<Setter Property="ScrollViewer.VerticalScrollBarVisibility"
Value="Auto" />
<Setter Property="ScrollViewer.HorizontalScrollBarVisibility"
Value="Auto" />
<Setter Property="TextWrapping"
Value="WrapWithOverflow" />
<Style x:Key="TextBoxInputStyle" TargetType="TextBox" BasedOn="{StaticResource {x:Type TextBox}}">
<Setter Property="FontFamily" Value="Calibri"/>
<Setter Property="FontSize" Value="12"/>
<Setter Property="ToolTipService.ShowOnDisabled" Value="True"/>
<Setter Property="Validation.ErrorTemplate" Value="{StaticResource ValidationErrorTemplate}"/>
<Style.Triggers>
<Trigger Property="IsReadOnly" Value="True">
<Setter Property="Background" Value="{StaticResource ReadOnlyBrush}" />
<Setter Property="BorderBrush" Value="{StaticResource InputBorderBrush}"/>
</Trigger>
<Trigger Property="IsReadOnly" Value="False">
<Setter Property="Background" Value="{StaticResource InputBrush}" />
<Setter Property="BorderBrush" Value="{StaticResource InputBorderBrush}"/>
</Trigger>
</Style.Triggers>
</Style>
</Style>
我确实尝试过用谷歌搜索,但发现的信息很少。一击声称WPF实际上不支持这一点?!?
【问题讨论】:
-
我尝试了一个示例应用程序,它似乎可以正常工作!我在 VS 2010 中尝试使用 .net 4 和 .net 3.5 作为目标框架。我的 Binding 没有任何验证,我也可以在 ViewModel 属性中看到相同的数据 (¼)。你的验证中有什么东西拒绝了这个值?