小编J C*_*man的帖子

主题中的Android textAllCaps

我有一个主题,希望所有关于活动的文本视图都被大写.所以我在一个样式中设置textAllCaps,然后将其应用到我的主题中的textViewStyle,如下所示

<style name="Widget.Apex.TextView" parent="android:Widget.TextView">
  <item name="android:textAppearance">?android:attr/textAppearanceSmall</item>
  <item name="android:textAllCaps">true</item>
</style>

<style name="MyTheme" parent="@android:style/Theme.Holo">
  <item name="android:textViewStyle">@style/Widget.Apex.TextView</item>
</style>
Run Code Online (Sandbox Code Playgroud)

不幸的是,这会导致我的应用程序标题,ActionBar字幕和popmenu项目变为大写的副作用.所以我想我会在我的主题中设置ActionBarStyle,textAppearanceLargePopupMenu和textAppearanceSmallPopupMenu属性,以获得textAllCaps = false的自定义样式.但是,这不起作用.我知道我的主题正在应用,因为如果我设置textColor或textStyle,它们都会应用于标题和菜单项.是否可以覆盖这些样式中的textAllCaps?

<style name="Widget.Apex.TextView" parent="android:Widget.TextView">
  <item name="android:textAppearance">?android:attr/textAppearanceSmall</item>
  <item name="android:textAllCaps">true</item>
</style>
<style name="TextAppearance.Apex.Widget.ActionBar.Title" parent="android:TextAppearance.Holo.Widget.ActionBar.Title">
  <item name="android:textAllCaps">false</item>
  <item name="android:textStyle">italic</item>
</style>
<style name="TextAppearance.Apex.Widget.ActionBar.Subtitle" parent="android:TextAppearance.Holo.Widget.ActionBar.Subtitle">
  <item name="android:textAllCaps">false</item>
  <item name="android:textStyle">italic</item>
  <item name="android:textColor">#FF0000</item>
</style>
<style name="TextAppearance.Apex.Widget.PopupMenu.Large" parent="android:TextAppearance.Holo.Widget.PopupMenu.Large">
  <item name="android:textAllCaps">false</item>
  <item name="android:textStyle">italic</item>
  <item name="android:textColor">#FF0000</item>
</style>
<style name="TextAppearance.Apex.Widget.PopupMenu.Small" parent="android:TextAppearance.Holo.Widget.PopupMenu.Small">
  <item name="android:textAllCaps">false</item>
  <item name="android:textStyle">italic</item>
  <item name="android:textColor">#FF0000</item>
</style>
<style name="Widget.Apex.ActionBar" parent="android:Widget.Holo.ActionBar">
  <item name="android:titleTextStyle">@style/TextAppearance.Apex.Widget.ActionBar.Title</item>
  <item name="android:subtitleTextStyle">@style/TextAppearance.Apex.Widget.ActionBar.Subtitle</item>
</style>

<style name="MyTheme" parent="@android:style/Theme.Holo">
  <item name="android:actionBarStyle">@style/Widget.Apex.ActionBar</item>
  <item name="android:textAppearanceLargePopupMenu">@style/TextAppearance.Apex.Widget.PopupMenu.Large</item>
  <item …
Run Code Online (Sandbox Code Playgroud)

android android-layout android-theme

10
推荐指数
1
解决办法
1万
查看次数

DataGrid PreviewTextInput事件从输入中删除控制字符

我有一个带有数据网格的WPF窗口.我试图从Symbol扫描仪中捕获通过虚拟楔形发送的字符串.对于应用程序,它看起来像是键入了字符.该字符串以ASCII 1(SOH)开头.

当窗口具有焦点的窗口的PreviewTextInput接收SOH与所有其他人类可读和非人类可读值一起. 但是,当数据网格具有焦点时,非人类可读字符将被剥离.

如果我在窗口上有PreviewKeyDown或PreviewKeyUp,则无论焦点是什么,字符都会正确显示.因此,数据网格沿途的某处将其剥离.不幸的是因为KeyDown/KeyUp没有显示ASCII字符,所以我不能使用这些事件而不必编写某种解析算法.

谁能告诉我我能做些什么来让那些非人类可读的控制字符始终发送到PreviewTextInput?或者如何解析PreviewKeyDown中的所有字符?

编辑:

当窗口具有焦点时:

Window PreviewKeyDown - LeftCtrl
Window PreviewKeyDown - A
Window PreviewTextInput - <SOH>
Window PreviewKeyDown - Oem6
Window PreviewTextInput - ]
Window PreviewKeyDown - LeftShift
Window PreviewKeyDown - C
Window PreviewTextInput - C
Run Code Online (Sandbox Code Playgroud)

当数据网格具有焦点时:

Window PreviewKeyDown - LeftCtrl
DataGrid PreviewKeyDown - LeftCtrl
Window PreviewKeyDown - A
DataGrid PreviewKeyDown - A
Window PreviewKeyDown - Oem6
DataGrid PreviewKeyDown - Oem6
Window PreviewTextInput - ]
Window PreviewKeyDown - LeftShift
DataGrid PreviewKeyDown - LeftShift
Window PreviewKeyDown - …
Run Code Online (Sandbox Code Playgroud)

c# wpf xaml wpf-controls

5
推荐指数
1
解决办法
658
查看次数

标签 统计

android ×1

android-layout ×1

android-theme ×1

c# ×1

wpf ×1

wpf-controls ×1

xaml ×1