防止只读文本框在 Silverlight 中变灰

2024-03-28

在 Silverlight 中,如何制作文本框IsReadOnly="True"不会变灰。我的应用程序的灰色效果看起来很糟糕,我想禁用它,或更改其外观/颜色。


Silverlight 2 中有几个选项,最简单的是使用 TextBlock,因为它只是只读的。

如果您需要一个文本框,那么您需要做的是给它一个不产生灰色影响的不同样式。

为此,请打开混合。右键单击文本框并选择“编辑控制部件(模板)”->“编辑副本...”,无论您想要什么,都可以调用新样式。

然后,您想要编辑这个新样式并删除名为“ReadOnly Visual Element”的边框,并删除更改该边框的不透明度属性的故事板。

希望这可以帮助。

添加样式 XAML

    <Style x:Key="ReadOnlyStyle" TargetType="TextBox">
        <Setter Property="BorderThickness" Value="1"/>
        <Setter Property="Background" Value="#FFFFFFFF"/>
        <Setter Property="Foreground" Value="#FF000000"/>
        <Setter Property="Padding" Value="2"/>
        <Setter Property="BorderBrush">
            <Setter.Value>
                <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                    <GradientStop Color="#FFA3AEB9" Offset="0"/>
                    <GradientStop Color="#FF8399A9" Offset="0.375"/>
                    <GradientStop Color="#FF718597" Offset="0.375"/>
                    <GradientStop Color="#FF617584" Offset="1"/>
                </LinearGradientBrush>
            </Setter.Value>
        </Setter>
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="TextBox">
                    <Grid x:Name="RootElement">
                        <vsm:VisualStateManager.VisualStateGroups>
                            <vsm:VisualStateGroup x:Name="CommonStates">
                                <vsm:VisualState x:Name="Normal"/>
                                <vsm:VisualState x:Name="MouseOver">
                                    <Storyboard>
                                        <ColorAnimationUsingKeyFrames Storyboard.TargetName="MouseOverBorder" Storyboard.TargetProperty="(Border.BorderBrush).(SolidColorBrush.Color)">
                                            <SplineColorKeyFrame KeyTime="0" Value="#FF99C1E2"/>
                                        </ColorAnimationUsingKeyFrames>
                                    </Storyboard>
                                </vsm:VisualState>
                                <vsm:VisualState x:Name="Disabled">
                                    <Storyboard>
                                        <DoubleAnimationUsingKeyFrames Storyboard.TargetName="DisabledVisualElement" Storyboard.TargetProperty="Opacity">
                                            <SplineDoubleKeyFrame KeyTime="0" Value="1"/>
                                        </DoubleAnimationUsingKeyFrames>
                                    </Storyboard>
                                </vsm:VisualState>
                                <vsm:VisualState x:Name="ReadOnly">
                                    <Storyboard>
                                    </Storyboard>
                                </vsm:VisualState>
                            </vsm:VisualStateGroup>
                            <vsm:VisualStateGroup x:Name="FocusStates">
                                <vsm:VisualState x:Name="Focused">
                                    <Storyboard>
                                        <DoubleAnimationUsingKeyFrames Storyboard.TargetName="FocusVisualElement" Storyboard.TargetProperty="Opacity">
                                            <SplineDoubleKeyFrame KeyTime="0" Value="1"/>
                                        </DoubleAnimationUsingKeyFrames>
                                    </Storyboard>
                                </vsm:VisualState>
                                <vsm:VisualState x:Name="Unfocused">
                                    <Storyboard>
                                        <DoubleAnimationUsingKeyFrames Storyboard.TargetName="FocusVisualElement" Storyboard.TargetProperty="Opacity">
                                            <SplineDoubleKeyFrame KeyTime="0" Value="0"/>
                                        </DoubleAnimationUsingKeyFrames>
                                    </Storyboard>
                                </vsm:VisualState>
                            </vsm:VisualStateGroup>
                            <vsm:VisualStateGroup x:Name="ValidationStates">
                                <vsm:VisualState x:Name="Valid"/>
                                <vsm:VisualState x:Name="InvalidUnfocused">
                                    <Storyboard>
                                        <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ValidationErrorElement" Storyboard.TargetProperty="Visibility">
                                            <DiscreteObjectKeyFrame KeyTime="0">
                                                <DiscreteObjectKeyFrame.Value>
                                                    <Visibility>Visible</Visibility>
                                                </DiscreteObjectKeyFrame.Value>
                                            </DiscreteObjectKeyFrame>
                                        </ObjectAnimationUsingKeyFrames>
                                    </Storyboard>
                                </vsm:VisualState>
                                <vsm:VisualState x:Name="InvalidFocused">
                                    <Storyboard>
                                        <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ValidationErrorElement" Storyboard.TargetProperty="Visibility">
                                            <DiscreteObjectKeyFrame KeyTime="0">
                                                <DiscreteObjectKeyFrame.Value>
                                                    <Visibility>Visible</Visibility>
                                                </DiscreteObjectKeyFrame.Value>
                                            </DiscreteObjectKeyFrame>
                                        </ObjectAnimationUsingKeyFrames>
                                        <ObjectAnimationUsingKeyFrames Storyboard.TargetName="validationTooltip" Storyboard.TargetProperty="IsOpen">
                                            <DiscreteObjectKeyFrame KeyTime="0">
                                                <DiscreteObjectKeyFrame.Value>
                                                    <System:Boolean>True</System:Boolean>
                                                </DiscreteObjectKeyFrame.Value>
                                            </DiscreteObjectKeyFrame>
                                        </ObjectAnimationUsingKeyFrames>
                                    </Storyboard>
                                </vsm:VisualState>
                            </vsm:VisualStateGroup>
                        </vsm:VisualStateManager.VisualStateGroups>
                        <Border x:Name="Border" Opacity="1" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="1">
                            <Grid>
                                <Border x:Name="MouseOverBorder" BorderBrush="Transparent" BorderThickness="1">
                                    <ScrollViewer x:Name="ContentElement" BorderThickness="0" IsTabStop="False" Padding="{TemplateBinding Padding}"/>
                                </Border>
                            </Grid>
                        </Border>
                        <Border x:Name="DisabledVisualElement" IsHitTestVisible="False" Opacity="0" Background="#A5F7F7F7" BorderBrush="#A5F7F7F7" BorderThickness="{TemplateBinding BorderThickness}"/>
                        <Border x:Name="FocusVisualElement" Margin="1" IsHitTestVisible="False" Opacity="0" BorderBrush="#FF6DBDD1" BorderThickness="{TemplateBinding BorderThickness}"/>
                        <Border x:Name="ValidationErrorElement" Visibility="Collapsed" BorderBrush="#FFDB000C" BorderThickness="1" CornerRadius="1">
                            <ToolTipService.ToolTip>
                                <ToolTip x:Name="validationTooltip" DataContext="{Binding RelativeSource={RelativeSource TemplatedParent}}" Template="{StaticResource ValidationToolTipTemplate}" Placement="Right" PlacementTarget="{Binding RelativeSource={RelativeSource TemplatedParent}}">
                                    <ToolTip.Triggers>
                                        <EventTrigger RoutedEvent="Canvas.Loaded">
                                            <BeginStoryboard>
                                                <Storyboard>
                                                    <ObjectAnimationUsingKeyFrames Storyboard.TargetName="validationTooltip" Storyboard.TargetProperty="IsHitTestVisible">
                                                        <DiscreteObjectKeyFrame KeyTime="0">
                                                            <DiscreteObjectKeyFrame.Value>
                                                                <System:Boolean>true</System:Boolean>
                                                            </DiscreteObjectKeyFrame.Value>
                                                        </DiscreteObjectKeyFrame>
                                                    </ObjectAnimationUsingKeyFrames>
                                                </Storyboard>
                                            </BeginStoryboard>
                                        </EventTrigger>
                                    </ToolTip.Triggers>
                                </ToolTip>
                            </ToolTipService.ToolTip>
                            <Grid Height="12" HorizontalAlignment="Right" Margin="1,-4,-4,0" VerticalAlignment="Top" Width="12" Background="Transparent">
                                <Path Fill="#FFDC000C" Margin="1,3,0,0" Data="M 1,0 L6,0 A 2,2 90 0 1 8,2 L8,7 z"/>
                                <Path Fill="#ffffff" Margin="1,3,0,0" Data="M 0,0 L2,0 L 8,6 L8,8"/>
                            </Grid>
                        </Border>
                    </Grid>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

我会得到 Blend 的预览,手动编写上面的代码将是大量不必要的工作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

防止只读文本框在 Silverlight 中变灰 的相关文章

  • Xamarin 中的 Task.ConfigureAwait(false) - 安全使用/建议使用?

    经验法则是 如果它不是与 UI 相关的方法 请使用Task ConfigureAwait false 如果我有一个接受接口的 PCL 核心库怎么办IUIAccess 核心库中的视图模型有一个方法 public Task ViewModelL
  • 初始化影子变量

    标准中是否有任何内容定义从它隐藏的变量初始化变量 例如 int i 7 int i i Visual Studio 2013 允许这样做而不发出警告并按预期工作 内在i变量是 7 然而 Clang 和 GCC 给我一个警告 关于从自身初始化
  • 提升解析器中的 Spirit 段错误

    我一直在尝试将我在本科编译器中编写的一些 lex 和 yacc 代码转换为精神代码以学习精神 我发现了一个我似乎无法弄清楚的段错误 我这样写了词法分析器 namespace lex boost spirit lex enum Tokens
  • 在 Windows 上实现堆栈跟踪 [关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我正在为我正在编写的游戏实现一个崩溃报告工具 并且我想为该报告提供 相当 详细的本机堆栈跟踪 我已经在 GNU Linux 上实现
  • 如何在 javascript 中使用 .net 资源文件

    无论如何 我可以在 javascript 中访问我的资源文件 resx 吗 如果没有 那么是否有任何解决方法可以用不同语言的 javascript 显示消息 如果您的 javascript 在页面中 您可以使用 var globalReso
  • 公开 ASP.NET 用户控件中的复杂属性

    我想从自定义 ASP NET 用户控件公开一个复杂的属性 可以通过aspx页面中的控制标签来设置 像这样的事情 public class TestData public int X public int Y public partial c
  • C# 检查闰年

    我想将输入日期 1 年添加到名为完成日期的列中 如果输入日期是闰年 我需要添加 364 天 如果不是 365 天的话 有没有办法在 c 中检查这一点 使用当前日期时间年份并操作闰年 不操作 然后添加天数 Thanks 您可以使用日期时间 I
  • M1 MacBook Pro 和 cmake 的编译错误

    我刚刚拿到了新的 M1 MacBook Pro 正在尝试编译大学工作所需的代码库 以下是我已采取的步骤 我使用 Rosetta 将终端设置为始终打开 安装的自制程序using bin bash c curl fsSL https raw g
  • 测试 WebApi 控制器时如何生成 Asp.net 用户身份

    我正在使用 Web API 2 在 web api 控制器中我使用过GetUserId使用 Asp net Identity 生成用户 ID 的方法 我必须为该控制器编写 MS 单元测试 如何从测试项目访问用户 ID 我在下面附上了示例代码
  • MDI应用程序中父窗体的问题

    我使用按钮作为容器中的控件 父窗体 当子窗体出现时 父窗体中的控件 按钮 图片 标签 出现在子窗体上并将其覆盖 我看不到子窗体 有谁知道如何防止这种情况 我不想将这些控件设置为 Control Visible false 因为当我最小化子表
  • C# - 获取 GPU 的总使用百分比

    我正在向我的程序添加一些新功能 这些功能当前通过串行连接将 CPU 使用情况和 RAM 使用情况发送到 Arduino 请参阅this https create arduino cc projecthub thesahilsaluja cp
  • Task.WaitAll 保持循环

    我正在尝试这个异步代码只是为了测试 async 关键字 public async Task
  • 不明确的元函数或未定义的类型

    我是元功能的新手 我想编写一个函数 将复合类型中某种类型的所有匹配项替换为其他类型 在示例中 replace
  • 不区分大小写“包含(字符串)”

    有没有办法让下面的返回为真 string title ASTRINGTOTEST title Contains string 似乎没有过载允许我设置区分大小写 目前我将它们都大写 但这很愚蠢 我指的是i18n http en wikiped
  • 何时在 UserControl 上使用模板化控件?

    我正在寻找一些有关如何在 WinRT 中创建自定义控件的教程 我有一个问题 假设我想创建一个包含一些内容的简单控件 例如左侧有图像 右侧有几个 TextBlock 的网格 我的意思是 一些简单的事情 比如
  • 非数字输入导致死循环

    由于某种原因 如果用户输入了错误的数据类型 例如 j 或 循环将停止要求输入并继续显示 Enter an integer gt 一遍又一遍 如何让程序处理错误的输入 为什么输入非数字值会导致如此奇怪的行为 define SENTINEL 0
  • 如何在 C# 中获取包含表情符号的字符串的正确长度

    The 英语国旗表情符号 https emojipedia org flag for england 由 14 个字节的数据组成 组合后将呈现一个字符 如果我有如下所示的代码 var test ud83c udff4 udb40 udc67
  • Azure:MissingRegistrationForLocation:未在位置“YYYY”中为资源类型“XXXX”注册订阅

    这最初是作为未找到订阅 https stackoverflow com questions 35071797 subscriptionnotfound the subscription resourcegroups could not be
  • 显式调用静态构造函数

    我想为下面的课程编写单元测试 如果名称不是 MyEntity 则 mgr 应为空 消极的单元测试 使用 Manager 私有访问器 我想将名称更改为 Test 以便 mgr 应该为空 然后会验证 mgr 值 为了实现这一点 我想显式调用静态
  • LINQ 表达式树 Any() 位于Where() 内

    我正在尝试生成以下 LINQ 查询 Query the database for all AdAccountAlerts that haven t had notifications sent out Then get the entity

随机推荐

  • 将 SVN 设置为最适合 Dev -> QA -> Prod

    如果已经有人问过这个问题 我很抱歉 但我无法找到针对这种情况的答案 对于我们的 Web 应用程序 我们有 3 个系统 开发 QA 和生产 目前 第三方正在维护代码 但很快它就会交到我们手中 我们将为每个阶段提供单独的构建环境 此外 我们使用
  • React-Native ProductFlavors(错误类型3:Activity类不存在)

    我想用2productFlavors对于我的 Android 应用程序 live and staging In app build grandle我这样定义它们 defaultConfig applicationId com some id
  • spring boot webflux:避免处理程序中的线程阻塞方法调用

    我刚刚开始使用WebFlux以及整个反应范式 我坚持这一点 Component public class AbcHandler private ObjectMapper objectMapper new ObjectMapper publi
  • 传递带有变量值作为参数的自定义属性

    我创建了一个自定义属性类 它将检查系统安全性 并在存在安全错误时引发身份验证异常 public class EntityChecker System Attribute public EntityChecker int entityId d
  • Fetch / Axios 在 React Native 中严重崩溃(但仅限于某些 URL)

    我的应用程序在执行时严重崩溃certainAPI 调用 我将范围缩小到这一点 这不是 HTTP 与 HTTPS 的问题 我最终使用了两种不同的模拟 API 令我惊讶的是 一种有效 另一种则无效 两者基本相同 请参阅下面的片段 WIFI 或蜂
  • 使用“是吗?”验证电话号码

    我正在尝试使用 Yup 验证电话号码 phone Yup number typeError That doesn t look like a phone number positive A phone number can t start
  • Android:录制的视频似乎*失真*

    我正在尝试使用 MediaRecorder 从相机录制视频 这是一个代码片段 snip mr setAudioSource MediaRecorder AudioSource MIC mr setVideoSource MediaRecor
  • 在 Apple Watch 模拟器(xCode 8、Swift 3、iOS 10)上的 watchOS 中运行 SpriteKit 游戏 - libswiftSwiftOnoneSupport 错误

    我下载了xCode 8 0 beta并打开了一个最近写的项目swift 2然后我将其转换为swift 3使用 xCode 然后我添加了一个watchOS设置 游戏 以我的项目为目标 文件 gt 新建 gt 目标 我检查了 GameScene
  • 如何限制字符串中的字母数量

    我有一个程序要求用户输入问题 然后程序回答它 我想知道的是如何限制用户可以输入变量的字母数量 蟒蛇的input函数不能直接执行此操作 但您可以截断返回的字符串 或重复直到结果足够短 method 1 answer input What s
  • SpringBoot - 解析HTTP请求头时出错

    我在跑步SpringBoot Application刚刚检查了服务器日志 发现了几个这样的错误 我不明白是什么原因导致的 因为每天 12 24 小时后都会出现该错误 Tomcat 版本运行于8 5 11 2018 03 04 17 03 2
  • 以编程方式旋转 UITextView

    有一个奇怪的问题 如果你创建一个UITextView创建后立即旋转它 某些线条或字符将不可见 尝试这个 myTextView font UIFont boldSystemFontOfSize 20 myTextView text Hello
  • MySQL 更新触发器 - 查找更改的列?

    我有一个有 120 列的表 我需要设置审计跟踪 如果发生更改 它将记录任何列 就像现在一样 我想我必须为每一列设置一个具有如下条件的触发器 IF NEW columnName OLD columnName THEN log the old
  • 使用正则表达式提取 r ngram

    卡尔 布罗曼的帖子 https kbroman wordpress com 2015 06 22 randomized hobbit 2 https kbroman wordpress com 2015 06 22 randomized h
  • Numpy 查找具有相同值的组的索引

    我有一个由 0 和 1 组成的 numpy 数组 y 1 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 1 1 我想计算 1 或 0 组的索引 因此 对于上面的示例 一组的结果应该类似于 result 0 2 8 9
  • 混合jpa继承策略-inheritanceType.JOINED与inheritanceType.SINGLE_TABLE

    我的类结构如下所示 我在这里实现了两个单独的策略 但根类的继承策略 即 InheritanceType JOINED 正在整个层次结构中使用 Entity Inheritance strategy InheritanceType JOINE
  • ORACLE 索引表上的插入性能

    为什么 Insert 语句在索引表上执行速度较慢 这实际上是同一类问题 为什么需要更多时间才能将所有杂货放在厨房的正确位置 而不是在逛完杂货店后把所有东西都留在袋子里 这是因为在存放杂货时 您希望将它们放在一个漂亮且众所周知的位置 以便以后
  • 使用 UMD 捆绑包捆绑 Angular 2 应用程序(不构建供应商捆绑包)

    我目前正在将我的 Angular 2 应用程序与 WebPack 捆绑在一起 我们仍在快速循环 因此我们不想增加构建和应用程序加载过程的延迟 而是希望包含很少变化的 Angular 2 UMD CDN 准备的捆绑包 例如
  • PySpark 输出文件数量

    我是 Spark 新手 我有一个简单的 pyspark 脚本 它读取 json 文件 将其展平并将其作为 parquet 压缩文件写入 S3 位置 读取和转换步骤运行得非常快 并使用 50 个执行器 我在 conf 中设置 但写入阶段耗时较
  • Devise::PasswordsController#create 中的 EOFError

    我在从 Ruby on Rails 应用程序发送邮件重置密码时遇到了问题 密码重置邮件过去可以使用 但现在不行了 密码重置是服务器发送的唯一电子邮件 一旦我提交了我想要获取密码的电子邮件 Rails 就会显示完整的跟踪信息 Devise P
  • 防止只读文本框在 Silverlight 中变灰

    在 Silverlight 中 如何制作文本框IsReadOnly True 不会变灰 我的应用程序的灰色效果看起来很糟糕 我想禁用它 或更改其外观 颜色 Silverlight 2 中有几个选项 最简单的是使用 TextBlock 因为它