1

在我的應用程序,我想創建一個具有GradientStop s的系統顏色褪色線,我試圖做這樣的:安裝系統顏色以一個LinearGradientBrush

<UserControl.Resources> 
    <Style x:Key="Divider" TargetType="Rectangle"> 
     <Setter Property="Height" Value="2" /> 
     <Setter Property="Fill"> 
      <Setter.Value> 
       <LinearGradientBrush StartPoint="0,0" EndPoint="1,1"> 
        <GradientStop Color="{StaticResource PhoneChromeBrush}" Offset="0.0" /> 
        <GradientStop Color="{StaticResource PhoneInverseBackgroundBrush}" Offset="1.0" /> 
       </LinearGradientBrush> 
      </Setter.Value> 
     </Setter> 
    </Style> 
</UserControl.Resources> 

但是,當我嘗試編譯項目我得到以下錯誤:

A first chance exception of type 'System.Windows.Markup.XamlParseException' occurred in System.Windows.ni.dll 
An exception of type 'System.Windows.Markup.XamlParseException' occurred in System.Windows.ni.dll but was not handled in user code 

我應該怎麼做才能解決這個問題?

回答

3

GradientStop.Color需要一個顏色,而不是刷。使用PhoneChromeColorPhoneInverseBackgroundColor代替:

<UserControl.Resources> 
    <Style x:Key="Divider" TargetType="Rectangle"> 
     <Setter Property="Height" Value="2" /> 
     <Setter Property="Fill"> 
      <Setter.Value> 
       <LinearGradientBrush StartPoint="0,0" EndPoint="1,1"> 
        <GradientStop Color="{StaticResource PhoneChromeColor}" Offset="0.0" /> 
        <GradientStop Color="{StaticResource PhoneInverseBackgroundColor}" Offset="1.0" /> 
       </LinearGradientBrush> 
      </Setter.Value> 
     </Setter> 
    </Style> 
</UserControl.Resources> 
0

我不確定,但看起來您可能會將靜態顏色設置爲筆刷。很難說,因爲您從未將代碼發佈到「PhoneChromeBrush」或「PhoneInverseBackgroundBrush」的靜態資源。但是,你正在設置漸變停止,如果他們是漸變本身,可能會破壞你的代碼。通常你保留「刷」的梯度,所以我還不能確定:

你能不能做這樣的事情:

<UserControl.Resources> 

<LinearGradientBrush x:Key="MoneyBrush" EndPoint="0.5,1" StartPoint="0.5,0"> 
       <GradientStop Color="#3A883A" Offset="1" /> 
       <GradientStop Color="#FFFFFF" Offset="0" /> 
       <GradientStop Color="#FF53AA75" Offset="0.50" /> 
       <GradientStop Color="#073307" Offset="0.95" /> 
      </LinearGradientBrush> 
     <Style x:Key="Divider" TargetType="Rectangle"> 
      <Setter Property="Height" Value="2" /> 
      <Setter Property="Fill" Value="{StaticResource MoneyBrush}"/> 
     </Style> 
    </UserControl.Resources> 
+0

'PhoneChromeBrush'和'PhoneInverseBackgroundBrush'預先定義在WP8的應用程序,他們不是漸變,但純色畫筆。 – Anton