当前位置:网站首页 / WPF / 正文

【ay wpf markup】AY XAML应该这样玩-写个复杂的颜色环【13/18】

时间:2016年07月22日 | 作者 : aaronyang | 分类 : WPF | 浏览: 1696次 | 评论 0

<Canvas x:Name="LayoutRoot">
        <Canvas.Resources>
            <p:ResourceCollection x:Key="Brushes">
                <LinearGradientBrush StartPoint="0,0" EndPoint="1,0">
                    <GradientStop Color="Red" Offset="0"/>
                    <GradientStop Color="Yellow" Offset="0.5"/>
                    <GradientStop Color="Blue" Offset="1"/>
                </LinearGradientBrush>
                <LinearGradientBrush StartPoint="0,0" EndPoint="1,0">
                    <GradientStop Color="Blue" Offset="0"/>
                    <GradientStop Color="Green" Offset="0.5"/>
                    <GradientStop Color="Red" Offset="1"/>
                </LinearGradientBrush>
                <LinearGradientBrush StartPoint="0,0" EndPoint="1,0">
                    <GradientStop Color="Red" Offset="0"/>
                    <GradientStop Color="Yellow" Offset="0.5"/>
                    <GradientStop Color="Blue" Offset="1"/>
                </LinearGradientBrush>
                <LinearGradientBrush StartPoint="0,0" EndPoint="1,0">
                    <GradientStop Color="Blue" Offset="0"/>
                    <GradientStop Color="Green" Offset="0.5"/>
                    <GradientStop Color="Red" Offset="1"/>
                </LinearGradientBrush>
            </p:ResourceCollection>
            <p:ResourceObject x:Key="ViewModel">
                <p:Property PropertyName="LogoData">
                    <p:Block>
                        <p:Set Var="$angle" ValuePath="-90.0"/>
                        <p:Return>
                            <p:Iterator>
                                <p:ForEach Var="$brush" Value="{StaticResource Brushes}">
                                    <p:Yield>
                                        <p:Object>
                                            <p:Property PropertyName="Angle" Path="$angle += 90"/>
                                            <p:Property PropertyName="Brush" Path="$brush"/>
                                        </p:Object>
                                    </p:Yield>
                                </p:ForEach>
                            </p:Iterator>
                        </p:Return>
                    </p:Block>
                </p:Property>
            </p:ResourceObject>
        </Canvas.Resources>
        <ItemsControl ItemsSource="{Binding Value.LogoData, Source={StaticResource ViewModel}}">
            <ItemsControl.OpacityMask>
                <RadialGradientBrush>
                    <GradientStop Color="Transparent" Offset="0.95"/>
                    <GradientStop Color="White" Offset="0.949"/>
                    <GradientStop Color="White" Offset="0.501"/>
                    <GradientStop Color="Transparent" Offset="0.5"/>
                </RadialGradientBrush>
            </ItemsControl.OpacityMask>
            <ItemsControl.Template>
                <ControlTemplate TargetType="ItemsControl">
                    <ItemsPresenter/>
                </ControlTemplate>
            </ItemsControl.Template>
            <ItemsControl.ItemsPanel>
                <ItemsPanelTemplate>
                    <Canvas/>
                </ItemsPanelTemplate>
            </ItemsControl.ItemsPanel>
            <ItemsControl.ItemTemplate>
                <DataTemplate>
                    <Canvas Width="1" Height="1">
                        <Canvas.RenderTransform>
                            <RotateTransform
                                Angle="{Binding Angle}" CenterX="145" CenterY="145"/>
                        </Canvas.RenderTransform>
                        <Viewport3D Width="290" Height="290">
                            <ModelVisual3D>
                                <ModelVisual3D.Content>
                                    <Model3DGroup>
                                        <GeometryModel3D>
                                            <GeometryModel3D.Geometry>
                                                <MeshGeometry3D
                                                    Positions="0 0 0, 0 1 0, 1 0 0, 1 1 0"
                                                    TextureCoordinates="0 1, 0 0, 1 1, 1 0"
                                                    TriangleIndices="0 2 1, 2 3 1"/>
                                            </GeometryModel3D.Geometry>
                                            <GeometryModel3D.Material>
                                                <DiffuseMaterial Brush="{Binding Brush}"/>
                                            </GeometryModel3D.Material>
                                            <GeometryModel3D.Transform>
                                                <MatrixTransform3D>
                                                    <MatrixTransform3D.Matrix>
                                                        0.002,0,0,0,-0.499,-0.498,0,-0.998,
                                                        0,0,1,0,0.499,0.5,0,1
                                                    </MatrixTransform3D.Matrix>
                                                </MatrixTransform3D>
                                            </GeometryModel3D.Transform>
                                        </GeometryModel3D>
                                        <AmbientLight Color="White" />
                                    </Model3DGroup>
                                </ModelVisual3D.Content>
                            </ModelVisual3D>
                            <Viewport3D.Camera>
                                <OrthographicCamera
                                    Position="0.5 0.5 1"
                                    LookDirection="0 0 -1"
                                    UpDirection="0 1 0"
                                    Width="1"/>
                            </Viewport3D.Camera>
                        </Viewport3D>
                    </Canvas>
                </DataTemplate>
            </ItemsControl.ItemTemplate>
        </ItemsControl>
    </Canvas>


效果图:


blob.png



====================www.ayjs.net       杨洋    wpfui.com        ayui      ay  aaronyang=======请不要转载谢谢了。=========




推荐您阅读更多有关于“WPF4.5,”的文章

猜你喜欢

额 本文暂时没人评论 来添加一个吧

发表评论

必填

选填

选填

必填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

  查看权限

抖音:wpfui 工作wpf

目前在合肥企迈科技公司上班,加我QQ私聊

2023年11月网站停运,将搬到CSDN上

AYUI8全源码 Github地址:前往获取

杨洋(AaronYang简称AY,安徽六安人)AY唯一QQ:875556003和AY交流

高中学历,2010年开始web开发,2015年1月17日开始学习WPF

声明:AYUI7个人与商用免费,源码可购买。部分DEMO不免费

查看捐赠

AYUI7.X MVC教程 更新如下:

第一课 第二课 程序加密教程

标签列表