WinUI密码框文本资源



我正在尝试定义一个包含PasswordBox元素的设置页面。当我重新生成应用程序时,定义的文本资源不会正确显示。但是,如果我删除:

x:Uid="/resources/db_pwd" 

定义(见下文(,然后它重建视图OK。如果我试图用定义的资源链接初始化视图,那么我会得到下面的错误。它看起来好像是PasswordBox的Text属性。。。但它不具有此属性。非常困惑!

资源

|Name                   |   Value                   |
|-----------------------|---------------------------|
|db_pwd.Header          |Password (default password)|
|db_pwd.PlaceholderText |Enter your password        |
|db_pwd.Text            |Password (default pwd)     |

密码框

<PasswordBox x:Name="dbpwd" Width="300" x:Uid="/resources/db_pwd"  
Header="Database Password"    
PlaceholderText="Enter password"  
PasswordChanged="PasswordBox_PasswordChanged"  
HorizontalAlignment="Left" Margin="40,5,0,0" />

初始化视图时出错

Windows.UI.Xaml.Markup.XamlParseException 
HResult=0x802B000A 
Message=The text associated with this error code could not be found. 
Unable to resolve property 'Text' while processing properties for Uid '/sql/db_pwd'. [Line: 38 Position: 68] 
Source=Windows 
StackTrace: 
at Windows.UI.Xaml.Application.LoadComponent(Object component, Uri resourceLocator,   ComponentResourceLocation componentResourceLocation)
at WeeWX.Views.SettingsPage.InitializeComponent() in D:DaveDocumentsVisual StudioWeeWXobjx86DebugViewsSettingsPage.g.i.cs:line 49 
at WeeWX.Views.SettingsPage..ctor() in D:DaveDocumentsVisual StudioWeeWXViewsSettingsPage.xaml.cs:line 49
at WeeWX.Views.MainPage.SetSettings(Object sender, TappedRoutedEventArgs e) in D:DaveDocumentsVisual StudioWeeWXViewsMainPage.xaml.cs:line 350
This exception was originally thrown at this call stack:
[External Code]
WeeWX.Views.SettingsPage.SettingsPage() in SettingsPage.xaml.cs 
WeeWX.Views.MainPage.SetSettings(object, Windows.UI.Xaml.Input.TappedRoutedEventArgs) in MainPage.xaml.cs 

问题

  1. 为什么要找Text属性,Password Box没有这个属性
  2. 即使我在资源文件中添加了一个Text条目,它也会失败,如图所示。为什么
  3. 这个错误的根本原因是什么,以及修复方法是什么

回答您的问题:

1.为什么它在寻找Text属性,Password Box没有这个属性
2.即使如图所示在资源文件中添加Text条目,它也会失败。为什么?

PasswordBox控件没有Text属性。它具有Password属性。

3.这个错误的根本原因是什么?修复方法是什么?

要修复此错误,您需要更改资源:

db_pwd.Text->db_pwd.Password

最终解决了这个问题,但场景很重要:

  1. 最初的定义是TextBox,然后我将其更改为PasswordBox
  2. 这是Visual Studio(VS(仍在寻求解析Text属性(我认为是TextBoxPasswordBox.Content属性(的时候,因此我认为一定有一些缓存在进行
  3. 我尝试过构建/清理解决方案,但没有成功
  4. 然后我又做了#3,重新启动VS,仍然没有成功
  5. 然后我再次执行#3,更改了db_pwd资源的名称和对db_pswd的引用,删除了db_pwd.Text,重建了解决方案,然后。。。成功

不确定需要采取什么步骤来解决这类问题,但最重要的是VS正在进行一些非常愚蠢(过于乐观(的缓存!意见或建议?

PS:在将TextBox更改为HyperlinkButton之后,现在出现了类似的问题。通过类似的过程修复(步骤#5(!

相关内容

  • 没有找到相关文章

最新更新