WPF仿網易云搭建筆記(0):項目搭建

文章目錄

  • 前言
  • 項目地址
  • 項目Nuget包搭建
    • 項目初始化
    • 項目架構
    • App.xaml引入MateralDesign資源包
  • 項目初步分析
    • 將標題欄去掉
    • DockPanel初步布局
  • 資源字典
    • 舉例
  • 結尾

前言

最近在找工作,發現沒有任何的WPF可以拿的出手的工作經驗,打算仿照網易云搭建一個WPF版本的。

項目地址

WPF仿網易云 Gitee倉庫

項目Nuget包搭建

不管有沒有用,先把Nuget裝好

在這里插入圖片描述

項目初始化

我項目初始化用過,我們先簡單的項目初始化一下,知識點有點多。我使用的是Prism的BlankApp項目

在這里插入圖片描述

WPF 零基礎入門筆記(1):WPF靜態頁面,布局+樣式+觸發器

WPF 零基礎入門筆記(2):控件模板+數據模版

WPF 零基礎入門筆記(3):數據綁定詳解

WPF Material Design UI框架:部分常用控件簡單使用

WPF Live Charts2 自學筆記

.NET SqlSuger 簡單介紹,超快開發數據庫

WPF Prims框架詳解

WPF CommunityToolkit.Mvvm

.NET Core 依賴注入 Microsoft.Extensions.DependencyInjection

項目架構

  • Models:實體類
  • Services:服務類
  • Utils:工具類
  • View:視圖
  • ViewModels:視圖數據
  • ViewStyles:視圖樣式
  • App.xaml:項目入口

在這里插入圖片描述

App.xaml引入MateralDesign資源包

<prism:PrismApplication x:Class="BlankApp1.App"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:local="clr-namespace:BlankApp1"xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"xmlns:prism="http://prismlibrary.com/"><Application.Resources><ResourceDictionary><!--添加MD 資源包--><ResourceDictionary.MergedDictionaries><materialDesign:BundledTheme BaseTheme="Light"PrimaryColor="Pink"SecondaryColor="Lime" /><ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Defaults.xaml" /></ResourceDictionary.MergedDictionaries></ResourceDictionary></Application.Resources>
</prism:PrismApplication>

項目初步分析

在這里插入圖片描述

這個適合使用DogPanel。

將標題欄去掉

WPF-隱藏窗體標題欄和邊框

<Window .......WindowStyle="None"AllowsTransparency="True">

DockPanel初步布局

<Window x:Class="BlankApp1.Views.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:MD="http://materialdesigninxaml.net/winfx/xaml/themes"xmlns:prism="http://prismlibrary.com/"prism:ViewModelLocator.AutoWireViewModel="True"xmlns:Views="clr-namespace:BlankApp1.Views"WindowStyle="None"AllowsTransparency="True"Title="{Binding Title}"Height="600"Width="800"><Window.Resources><Style x:Key="ContentBorder"TargetType="Border"><Setter Property="BorderBrush"Value="Black" /><Setter Property="BorderThickness"Value="3" /></Style></Window.Resources><DockPanel LastChildFill="True"><Border DockPanel.Dock="Bottom"Height="70"Style="{StaticResource ContentBorder}" /><Border DockPanel.Dock="Left"Width="100"Style="{StaticResource ContentBorder}" /><Border DockPanel.Dock="Top"Height="60"Style="{StaticResource ContentBorder}" /><Border Style="{StaticResource ContentBorder}"Background="Pink"Height="auto" /></DockPanel>
</Window>

在這里插入圖片描述

資源字典

我們寫樣式的時候,有時候樣式寫的特別多,這樣就需要字典引入。這里不得不吐槽,資源字典是沒有代碼提示的,必須純手打

<!--窗口控件就是Windows.Resource-->
<UserControl.Resources><ResourceDictionary><ResourceDictionary.MergedDictionaries><ResourceDictionary Source="/項目名;component/文件完整路徑"/></ResourceDictionary.MergedDictionaries></ResourceDictionary>
</UserControl.Resources>

舉例

比如我這個資源文件

在這里插入圖片描述
引入代碼

    <UserControl.Resources><ResourceDictionary><ResourceDictionary.MergedDictionaries><ResourceDictionary Source="/BlankApp1;component/ViewStyles/TitleStyle.xaml"/></ResourceDictionary.MergedDictionaries></ResourceDictionary></UserControl.Resources>

記得引入了之后要重新生成一下解決方案,WPF需要重新編譯才能識別。

結尾

今天不早了,寫完這篇博客已經23:30了,明天有空再接著更新。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/211190.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/211190.shtml
英文地址,請注明出處:http://en.pswp.cn/news/211190.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Numpy 實現基尼指數算法的決策樹

基尼系數實現決策樹 基尼指數 Gini ? ( D ) 1 ? ∑ k 1 K ( ∣ C k ∣ ∣ D ∣ ) 2 \operatorname{Gini}(D)1-\sum_{k1}^{K}\left(\frac{\left|C_{k}\right|}{|D|}\right)^{2} Gini(D)1?k1∑K?(∣D∣∣Ck?∣?)2 特征 A A A條件下集合 D D D的基尼指數&#xff1a; Gi…

使用ssm框架進行mapper或者service單純測試時報錯問題處理

問題 使用注解方式配置好ssm后&#xff0c;無法在測試中單獨測試mapper層和service層。效果如下&#xff1a; 解決 關閉配置類中的EnableWebMvc 再次運行&#xff0c;即可完成測試。

【SpringBoot篇】5種類型參數傳遞json數據傳參的操作

&#x1f38a;專欄【SpringBoot】 &#x1f354;喜歡的詩句&#xff1a;天行健&#xff0c;君子以自強不息。 &#x1f386;音樂分享【如愿】 &#x1f384;歡迎并且感謝大家指出小吉的問題&#x1f970; 文章目錄 &#x1f33a;普通參數&#x1f33a;POJO參數&#x1f33a;嵌套…

uniapp切換頁面時報錯問題

我們來看如下錯誤&#xff1a; 該錯誤的意思是不能切換到 tabbar 頁面。tabbar頁面通常是公共頁面或者底部導航欄&#xff0c;如果我們用 navigateTo 或者 redirectTo 都不能實現頁面切換。 我們有兩種方式&#xff1a; 第一種是用 switchTab 來進行切換&#xff0c;但注意切…

xml文本轉Java對象

Java對象轉String public static String toData(Object object) throws Exception {JAXBContext jc JAXBContext.newInstance(object.getClass());Marshaller m jc.createMarshaller();StringWriter output new StringWriter(2048);m.marshal(object, output);String data …

STM32之SPI總線

一、SPI總線概述 1、SPI總線介紹 SPI是一種通信協議&#xff0c;它是摩托羅拉公司研發出來的一種通信協議&#xff0c;就有自己的特點&#xff08;串行&#xff0c;并行&#xff0c;單工&#xff0c;半雙工&#xff0c;全雙工&#xff0c;同步異步&#xff09;。它主要應用于音…

ffprobe命令行超詳細使用詳解

本文做為閱讀ffprobe源碼的前課程。為了之后方便理解ffprobe的源碼,咱們先從ffprobe的命令學習。 課程內容如下: 文章目錄 一、ffprobe主要選項說明1、每次使用ffprobe都打印編譯環境的信息,太煩了2、如何分析媒體文件中存在的流信息3、如何指定查詢某路流信息4、查看輸入文…

CS106L2023 and CS106B 環境配置(詳細教程)

1.問題&#xff1a; &#xff08;1&#xff09;CS106L 運行./setup.sh 腳本時出錯 &#xff08;windows 請下載git&#xff0c;在git bash 打開運行&#xff09; &#xff08;2&#xff09;CS106B&#xff0c;QT構建 構建錯誤&#xff1a;一般構建錯誤&#xff0c;例如 Erro…

【Java+MySQL】前后端連接小白教程

目錄 &#x1f36d;【IntelliJ IDEA】操作 &#x1f36d;1. 連接MySQL數據庫 &#x1f308;1.1 錯誤解決 &#x1f36d;2. 操作MySQL數據庫 &#x1f308;2.1 雙擊查看表數據 &#x1f308;2.2 編寫SQL腳本 &#x1f36d;【IntelliJ IDEA】 IntelliJ IDEA是由JetBrains公司…

2013年全國碩士研究生入學統一考試管理類專業學位聯考數學試題——解析版

文章目錄 2013 級考研管理類聯考數學真題一、問題求解&#xff08;本大題共 15 小題&#xff0c;每小題 3 分&#xff0c;共 45 分&#xff09;下列每題給出 5 個選項中&#xff0c;只有一個是符合要求的&#xff0c;請在答題卡上將所選擇的字母涂黑。真題&#xff08;2013-01&…

Django自定義中間件

自定義中間件 傳統方法的的五大鉤子函數&#xff1a;&#xff08;需要調用MiddlewareMixin類&#xff09; process_request&#xff0c;請求剛到來&#xff0c;執行視圖之前&#xff1b;正序 process_view&#xff0c;路由轉發到視圖&#xff0c;執行視圖之前&#xff1b;正序…

【Linux】地址空間

本片博客將重點回答三個問題 什么是地址空間&#xff1f; 地址空間是如何設計的&#xff1f; 為什么要有地址空間&#xff1f; 程序地址空間排布圖 在32位下&#xff0c;一個進程的地址空間&#xff0c;取值范圍是0x0000 0000~ 0xFFFF FFFF 回答三個問題之前我們先來證明地址空…

【Python數據結構與算法】—— 搜索算法 | 期末復習不掛科系列

? &#x1f308;個人主頁: Aileen_0v0&#x1f525;系列專欄: 數據結構與算法&#x1f4ab;個人格言:"沒有羅馬,那就自己創造羅馬~" 這篇博客主要探索的是計算機科學常見問題---搜索算法 “時間緊&#xff0c;任務重&#xff01;” 話不多說&#xff0c;開始今天…

HarmonyOS--ArkTS(0)--目錄

官方API文檔&#xff1a; HarmonyOS應用開發官網 - 華為HarmonyOS打造全場景新服務 華為開發者官方網站_創新從這里開始

MySQL的鎖機制

1.簡介 MySQL的隔離性是由鎖機制來保證的。鎖是計算機協調多個進程或線程并發地訪問某一資源你的機制。當多線程并發地訪問某個數據時&#xff0c;尤其是在涉及金錢等安全敏感性數據的時候&#xff0c;需要保證數據在任意時刻最多只有一個線程可以對其進行修改&#xff0c;從而…

Android 分享小結

關于作者&#xff1a;CSDN內容合伙人、技術專家&#xff0c; 從零開始做日活千萬級APP。 專注于分享各領域原創系列文章 &#xff0c;擅長java后端、移動開發、商業變現、人工智能等&#xff0c;希望大家多多支持。 目錄 一、導讀二、微信 分享 三、 QQ 、QQ空間&#xff08;Qz…

MATLAB基礎運算

矩陣和數字相乘 就是矩陣里面每個元素跟這個數字乘一遍&#xff0c;無論是點乘還是叉乘&#xff0c;對于這個都一樣。 >> Aones(3) A 1 1 11 1 11 1 1 >> 10*A ans 10 10 1010 10 1010 10 10 矩陣和矩陣叉乘 能不能相…

C++普通函數與函數模板的調用規則

調用規則 如果函數模板和普通函數都可以實現&#xff0c;優先調用普通函數可以通過空模板參數列表來強制調用函數模板函數模板也可以重載如果函數模板可以產生更好的匹配&#xff0c;優先調用函數模板 總結&#xff1a;既然提供了函數模板&#xff0c;最好就不要提供普通函數…

CSS 如何居中 DIV

如何居中 div&#xff1f; 水平居中&#xff1a;給 div 設置一個寬度&#xff0c;然后添加 margin:0 auto 屬性 div {width: 200px;margin: 0 auto; }水平居中&#xff0c;利用 text-align:center 實現 .container {background: rgba(0, 0, 0, 0.5);text-align: center;font…

基于ssm鐵嶺河醫院醫患管理系統論文

摘 要 21世紀的今天&#xff0c;隨著社會的不斷發展與進步&#xff0c;人們對于信息科學化的認識&#xff0c;已由低層次向高層次發展&#xff0c;由原來的感性認識向理性認識提高&#xff0c;管理工作的重要性已逐漸被人們所認識&#xff0c;科學化的管理&#xff0c;使信息存…