2016-12-30 75 views
1

我最近開始開發UWP應用程序。將自定義樣式應用於Autosuggest框崩潰應用程序:無法將具有TargetType'FormsCustomizableTextBox'的樣式應用於'TextBox'類型的對象

我已經在我的網頁資源定義的風格是這樣的:

<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類繼承它確實有一個屬性作爲溼婆戈帕爾描述和BugFinder暗示,顯然我是那種白癡錯過它)。

關於Xamarin論壇的相關討論可以看到here

+1

Surel自動建議的部分是文本框? – BugFinder

+0

@BugFinder大概(它看起來像它,所以必須從它繼承?)。我無法確定,因爲我剛剛開始涉足它。閱讀關於Autosuggestbox的文檔。 – NSNoob

+0

@NSNoob您是否交叉檢查應用程序資源中是否存在其他具有相同名稱的樣式?您是否嘗試將樣式名稱更改爲:MyAutoSuggestBoxStyle? –

回答

1

我覺得你的風格的TargetType應該是:TextBox但不是:AutoSuggestBox和需要申請它TextBoxStyle上AutoSuggestBox:

風格:

<Style TargetType="TextBox" x:Name="AutoSuggestBoxStyle"> 
    ... 
</Style> 

風格的應用程序:

<AutoSuggestBox TextBoxStyle={StaticResource AutoSuggestBoxStyle}> 
    ... 
</AutoSuggestBox> 
相關問題