2016-06-27 7 views
2

私はXamarin.Forms UWPアプリケーションを開発中です。Xamarin.Forms UWPアプリケーションのアクセントカラーを変更するにはどうすればよいですか?

私のアプリケーションのアクセントの色を設定するのには苦労しています。これは、コントロールのデフォルトで特定の動作に使用される色です。

enter image description here

私はこのスレッドからいくつかの提案を試してみました::エントリコントロールがフォーカスでのデフォルト青いハイライトを持っているたとえば

は、以下に示すChange Accent Color in Windows 10 UWPが、どれも動作するように見えません。

私は、Xamarin.UWPのUWPの色の変更がどう違うのか、Xamarin.Formsでも何をしようとしているのかが完全に理解できなかったかどうかはわかりません。

これを行う方法を知りましたか?

答えて

3

Hereは、UWP用のスタイルコードFormsTextBoxです。

<Application.Resources> 
    <ResourceDictionary> 
     <ResourceDictionary.ThemeDictionaries> 
      <ResourceDictionary x:Key="Light"> 
       <SolidColorBrush x:Key="SystemControlHighlightAccentBrush" Color="#ff0000" /> 
      </ResourceDictionary> 
     </ResourceDictionary.ThemeDictionaries> 
    </ResourceDictionary> 
</Application.Resources> 
+0

私は 'Xamarin.Forms'のカスタムビルドが必要か、ここに表示されている' ThemeResource'の値をオーバーライドする必要があると言っていますか?もしそうなら、私はそれらの値をどのように上書きするでしょうか? – user1

+0

また、これを行う唯一の方法はXAMLですか?これをコードで達成する方法はありますか? – jbyrd

2

あなたが定義することができます。あなたがそうのようなあなたのApp.xamlにこれらThemeResourcesを追加することができますブラシあなたのテキストボックスのボーダーの色を変更するので、

<Setter Property="Foreground" Value="{ThemeResource SystemControlForegroundBaseHighBrush}" /> 
<Setter Property="Background" Value="{ThemeResource SystemControlBackgroundAltHighBrush}" /> 
<Setter Property="BackgroundFocusBrush" Value="{ThemeResource SystemControlBackgroundChromeWhiteBrush}" /> 
<Setter Property="BorderBrush" Value="{ThemeResource SystemControlForegroundChromeDisabledLowBrush}" /> 

は、あなたは以下のスタイルの色をオーバーライドする必要がありますApp.xamlのスタイルセッタープロパティ

<ResourceDictionary>  
     <Style TargetType="Button" x:Name="myNewButtonStyle"> 
      <Setter Property="Background" Value="{ThemeResource ButtonBackgroundThemeBrush}" /> 
     </Style> 
    </ResourceDictionary> 

は、その後、あなたがテーマリソースディクショナリのキーを使用して適用することができるであろう同様の方法で色

protected override void OnElementChanged(ElementChangedEventArgs<Button> e) 
    { 
     base.OnElementChanged(e); 
     if (this.Element != null) 
     { 
      this.Control.Style = Windows.UI.Xaml.Application.Current.Resources["myNewButtonStyle"] as Windows.UI.Xaml.Style; 
     } 
    } 

を変更する必要があるコントロールのCustomRendererを使用しています。このコードを使用すると、Xamarinのコントロールでネイティブスタイルを使用できます。

+0

アイデアは悪くないですが、 'TextBox'のために、あなたが変更できるプロパティを持っていないようです。境界の色。 – testing

関連する問題