WP8.1透明渐变

时间:2015-05-12 08:32:29

标签: windows-phone-8.1 transparency linear-gradients

如果我在WP 8.1中使用线性渐变:

items_average

我得到这样一张照片:

linear Gradient

当我理解正确时,这是由于α值转换不足。对于Windows XAML,有 MarkupExtensions ,可解决此问题,但对于WindowsPhone,我无法使用 MarkupExtensions

是否有其他可靠的解决方法,满足了我对此的需求?

(是的,它应该是透明的,因为它应该在底部淡出#include <type_traits> #include <iostream> template <class B> typename std::enable_if < std::is_same<B,int>::value ||std::is_same<B,double>::value ,std::string >::type add (std::string str , B b){ return str + std::to_string(b); } template <class B> typename std::enable_if < std::is_same<B,int>::value ||std::is_same<B,double>::value ,std::string >::type add (B b, std::string str){ return std::to_string(b)+ str ; } template <class A , class B> typename std::enable_if < (std::is_same<B,int>::value ||std::is_same<B,double>::value)&& (std::is_same<A,int>::value ||std::is_same<A,double>::value) , decltype(A()+B()) >::type add (B b, A a){ return a+b; } std::string add (std::string a , std::string b){ return a+b; } int main (void){ std::cout << add("hi ", "there")<<"\n"; std::cout << add ("hi there" , 3)<<"\n"; std::cout << add (3 , "hi there")<<"\n"; std::cout << add (2.2 , 1.1)<<"\n"; std::cout << add (3.14 , 2)<<"\n"; std::cout << add (4 , 2)<<"\n"; return 0; } 并且这个<Grid Height="20"> <Grid.Background> <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> <GradientStop Color="Transparent" Offset="0"/> <GradientStop Color="Black" Offset="1"/> </LinearGradientBrush> </Grid.Background> </Grid> 具有不同颜色的内容。通常我可以通过使“透明”来欺骗“颜色只是周围的颜色。”

1 个答案:

答案 0 :(得分:2)

好吧所以我猜问题是白色......?

问题是Transparent与完全透明的#FFFFFF相同,因此在ARGB表示法#00FFFFFF中。你想要的是一个完全透明的#000000,所以在ARGB表示法中这是#00000000

使用ARGB表示法,我想这就是你要找的东西:

<Grid Height="20">
  <Grid.Background>
     <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
        <GradientStop Color="#00000000" Offset="0"/>
        <GradientStop Color="#ff000000" Offset="1"/>
     </LinearGradientBrush>
  </Grid.Background>
</Grid>