搭建Wpf框架(8) —— 3D展示墙

AIStudio框架汇总及介绍

源码是从3DWall改造的,忘了哪下载的了,没办法贴上原链接了。

1.将UseControl改造成Control控件,这样可以在用的地方改模板即可。(内容控件的DataTemplate)

2.将Wall显示控件改成类似与ItemSource的绑定

3.实现了横向排列和竖向排列。

4.3D部分没有改,就用的原先的。

5.Popupwindow当然也改成了可自定义内容的控件。

最后使用的时候简化如下:

<UserControl.Resources>
<!--模型1-->
<DataTemplate DataType="{x:Type model:WallItemData}">
<Grid>
<Image x:Name="PART_Image" Source="{Binding Source}" Stretch="UniformToFill"/>
</Grid>
</DataTemplate>
</UserControl.Resources>


<wall:WallControl ItemsSource="{Binding Datas}" x:Name="_mainwall" />

 

其中:WallItemData为用户自定义的类,Datas为WallItemData集合。效果图如下:

 

 源码地址:https://gitee.com/akwkevin/aistudio.-util.-layout

 

另外,当然要集成到我们的系统当中去啦。

将DataTemplate替换成

<DataTemplate DataType="{x:Type model:_3DItemData}">
<Border BorderBrush="{DynamicResource MahApps.Brushes.Accent}" BorderThickness="1">
<Grid Width="200" Height="200">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Border Background="{DynamicResource MahApps.Brushes.Accent}">
<TextBlock VerticalAlignment="Center" Text="{Binding Label}" Foreground="{DynamicResource MahApps.Brushes.Text}" Margin="2,2" IsHitTestVisible="False" />
</Border>
<ContentControl Grid.Row="1" Content="{Binding Content}"/>
</Grid>
</Border>
</DataTemplate>

 

使用 <utilwall:WallControl x:Name="_mainwall" Grid.Row="1" FillAll="False" Orientation="Vertical"  ItemsSource="{Binding User3DData.Data}" >

效果图如下:

 

 效果一般般吧,还是3D照片墙好看,或者波形图也可以,一些统计的页面。

最后源码地址:艾竹/AIStudio.Wpf.AClient (gitee.com) 

 

posted @   竹天笑  阅读(1100)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类
点击右上角即可分享
微信分享提示