我最近开始开发UWP应用程序。
我在页面资源中定义了一个样式,如下所示:
<Style TargetType="AutoSuggestBox" x:Name="AutoSuggestBoxStyle">
<Setter Property="FontFamily" Value="Segoe UI"/>
<Setter Property="FontSize" Value="17"/>
<Setter Property="FontWeight" Value="SemiLight"/>
<Setter Property="BorderBrush" Value="Gray"/>
<Setter Property="BorderThickness" Value="0.5"/>
<Setter Property="PlaceholderText" Value="Type Here"/>
<Setter Property="Margin" Value="0,10,0,0"/>
</Style>
然后我在同一页面中使用这种风格,如:
<AutoSuggestBox Style="{StaticResource AutoSuggestBoxStyle}"
Name="SchemeSuggestBox"
QuerySubmitted="SchemeSuggestBox_QuerySubmitted"
SuggestionChosen="SchemeSuggestBox_SuggestionChosen"
TextChanged="SchemeSuggestBox_TextChanged"/>
这样做会导致应用程序崩溃,但例外情况为:
Exception = {"No installed components were detected. (Exception from HRESULT: 0x800F1000)"}
并留言:
Message = "Cannot apply a Style with TargetType 'Xamarin.Forms.Platform.UWP.FormsCustomizableTextBox' to an object of type 'Windows.UI.Xaml.Controls.TextBox'."
如果我从我的AutoSuggestBox(以下行)中删除该样式,该应用程序将按预期工作:
Style="{StaticResource AutoSuggestBoxStyle}"
是什么给出的?我根本没有将这种风格应用于任何TextBox。
我已经阅读了Official Docs on Autosuggest box(原来它甚至没有从TextBox类继承它确实有一个属性,就像Siva Gopal描述的那样,BugFinder暗示。显然我是有点想念它的白痴)。
可以看到有关Xamarin论坛的相关讨论here。
答案 0 :(得分:1)
我认为您的样式TargetType
应该是:TextBox
但不是:AutoSuggestBox
并且需要在AutoSuggestBox上将其应用于TextBoxStyle
:
<强>样式:强>
<Style TargetType="TextBox" x:Name="AutoSuggestBoxStyle">
...
</Style>
样式申请:
<AutoSuggestBox TextBoxStyle={StaticResource AutoSuggestBoxStyle}>
...
</AutoSuggestBox>