当前位置: 首页 > news >正文

什么二手车网站做最好襄阳网站建设开发

什么二手车网站做最好,襄阳网站建设开发,网站空间免费申请,网络推广网站建设方案文章目录 前言项目地址动态样式组合样式批量样式覆盖Prism新建UserControler修改Material Design 笔刷收放列表可以滚动的StackPanel列表点击展开或折叠 实现效果 前言 今天接着继续细化代码,把整体框架写出来 项目地址 WPF仿网易云 Gitee仓库 动态样式 【WPF】C#…

文章目录

  • 前言
  • 项目地址
  • 动态样式
  • 组合样式
  • 批量样式覆盖
  • Prism新建UserControler
  • 修改Material Design 笔刷
  • 收放列表
    • 可以滚动的StackPanel
    • 列表
    • 点击展开或折叠
  • 实现效果

前言

今天接着继续细化代码,把整体框架写出来

项目地址

WPF仿网易云 Gitee仓库

动态样式

【WPF】C#代码动态改变控件的样式

声明个Style变量

public class IconButton
{public string Name { get; set; }public string Icon { get; set; }public RelayCommand RelayCommand { get; set; }public Style Style { get; set; }
}

引入资源字典,通过Key查找样式

public ResourceDictionary StyleResource { get; set; }public TitileViewModel() {StyleResource = new ResourceDictionary(){//Uri路径是"/项目;componet/文件路径"Source = new Uri("/BlankApp1;component/ViewStyles/TitleStyle.xaml",UriKind.RelativeOrAbsolute)};IconButton = new IconButton(){Name = "EmailBox",Icon = "EmailBox",RelayCommand = new RelayCommand(() =>{Debug.WriteLine("按钮测试");}),Style = (Style)StyleResource["SelectIcon"]};
}

组合样式

但是我发现我用不了,这个好像不好用

[WPF]控件应用多个样式

批量样式覆盖

由于WPF的Style没有Css 的类选择器,而且WPF 不允许同时设置多个样式,所以WPF的样式写起来很啰嗦

批量样式设置可以设置某个控件的Resource,在里面添加Style

<Grid Background="#FF6666"><Grid.Resources><!--你的样式覆盖,这个会对所有的Grid里面的控件生效--><Style TargetType="TextBlock"BasedOn="{StaticResource TitleText}"></Style></Grid.Resources>
</Grid>

但是对于Materail Design 控件无效,需要特殊方法覆盖样式。但是根据我的测试,无法覆盖,只能硬写。要么就用数据模板批量赋值。我折腾了两天,想想还是放弃了,WPF 的Style 的缺陷没办法避免,写起来就是麻烦。

根据实际测试,只能覆盖原生的控件,不能覆盖Material Design的控件样式。

Overriding Material Design Styles

Prism新建UserControler

在这里插入图片描述

修改Material Design 笔刷

C# WPF Material Design MaterialDesignFlatButton Hint\HighLight Color

使用的Key覆盖的方法,将Material Design 的笔刷的Key覆盖。这也说明了为什么Material Design不能直接全局覆盖

在这里插入图片描述

在这里插入图片描述
为什么这么设置,就可能需要看源码了。这里面的Style依赖太过于复杂,我暂时就不去琢磨了。

根据我的测试,修改SolidColorBrush就可以了。

收放列表

在这里插入图片描述
这个分为两部分,按钮事件和列表展开收缩。

可以滚动的StackPanel

<!--在外侧添加一个ScrollViewer,我这里使用了VerticalScrollBarVisibility来隐藏滚动条-->
<ScrollViewer VerticalScrollBarVisibility="Hidden">
</ScrollViewer>

列表

新建一个List<`String>存放歌单

public List<string> MusicItems { get; set; }
.......MusicItems = new List<string>() {"五月天","夜曲","Deep Dark","Link Park","JoJo"
};

使用数据模板绑定数据源

<!--指定数据源-->
<ItemsControl ItemsSource="{Binding MusicItems}" Visibility="{Binding Visibility}"><!--数据容器选择StackPanel--><ItemsControl.ItemsPanel><ItemsPanelTemplate><StackPanel /></ItemsPanelTemplate></ItemsControl.ItemsPanel><ItemsControl.ItemTemplate><DataTemplate><Button><StackPanel Orientation="Horizontal"><MD:PackIcon Kind="MusicNoteSixteenth"Width="12"Height="12"VerticalAlignment="Center" /><!--如果是基本元素列表,直接Binding就好了--><TextBlock Text="{Binding}"FontSize="12"Margin=" 10 0 0 0" /></StackPanel></Button></DataTemplate></ItemsControl.ItemTemplate>
</ItemsControl>

点击展开或折叠

我这里没做动画,动画太难了,先实现基本逻辑

public partial class  LeftListViewModel : ObservableObject
{public List<string> MusicItems { get; set; }/// <summary>/// 歌单列表展开或者关闭/// </summary>public RelayCommand MusicItemsOpenOrClose { get; set; }/// <summary>/// 通过是否可见来设置列表/// </summary>[ObservableProperty]private Visibility visibility;public LeftListViewModel(){Visibility = Visibility.Hidden;MusicItems = new List<string>() {"五月天","夜曲","Deep Dark","Link Park","JoJo"};MusicItemsOpenOrClose = new RelayCommand(() => {if(Visibility == Visibility.Visible){Visibility = Visibility.Hidden;}else{Visibility = Visibility.Visible;}});}
}

然后在按钮上面添加点击事件

<Button Command="{Binding MusicItemsOpenOrClose}"><StackPanel Orientation="Horizontal"><MD:PackIcon Kind="FormatListBulleted"VerticalAlignment="Center" /><TextBlock Text="歌曲列表"Margin=" 10 0 0 0" /></StackPanel>
</Button>

完整代码可以看我的Gitee仓库

WPF仿网易云 Gitee仓库

实现效果

在这里插入图片描述

http://www.yayakq.cn/news/55739/

相关文章:

  • 中山建设企业网站郑州企业网站优化哪家便宜
  • 中国建设银行安徽分行网站中国建设银行官方网站登录
  • 大学生对校园网站建设的需求是什么哪里有做网站优化的公司
  • 天津手动网站建设调试快递公司网站模板
  • 上海网站 备案网站设计说明书整合
  • 阿里云网站建设方案书模板重庆好的网站建设公司
  • 做电影网站失败了北京建网站公司推荐
  • 鄂州手机网站设计群晖 nas 做网站
  • 怎么做自己的发卡网站6如何通过cpa网站做推广
  • 深圳建设网站的公司哪家好外网IP访问wordpress
  • 网站开发用的框架前端网站建设服务 杭州
  • 跟公司产品做网站大学网站建设技术方案
  • 繁体企业网站源码南山网站 建设seo信科
  • 沙坪坝做网站个人工商营业执照查询官网
  • 网站设计排行榜前十平台网站建设需要什么技术
  • 网站开发职能设计公司网站怎么做
  • 龙岗南联网站建设公司郑州网站建设培训班
  • 自己做网站的域名淘宝属于什么网站怎么做
  • 湖北做网站多少钱外链下载
  • 沈阳做网站推广三星做号网站
  • 梦幻西如何建立网站做代练用织梦怎么仿别人网站的js flash
  • 网站如何启用gzip压缩网站建设淘宝类目
  • 怎么做教育类型的网站怎么做网站zwnet
  • 做的网站需要买什么系统服务器南充房产网最新楼盘最近房价
  • 如何让搜索引擎不收录网站服务器地址在哪里看
  • 什么软件做美食视频网站好长沙本地论坛有哪些
  • 娱乐类网站梧州网站平台建设公司
  • 东营做网站seo怎么用dw做博客网站
  • 网站建设的相应技术文化传媒可以做网站吗
  • 做网站如何容易被百度抓取国家网站备案