国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

WPF自定義控件與樣式(13)-自定義窗體Window & 自適應(yīng)內(nèi)容大小消息框MessageBox

這篇具有很好參考價(jià)值的文章主要介紹了WPF自定義控件與樣式(13)-自定義窗體Window & 自適應(yīng)內(nèi)容大小消息框MessageBox。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

一.前言

  申明:WPF自定義控件與樣式是一個(gè)系列文章,前后是有些關(guān)聯(lián)的,但大多是按照由簡(jiǎn)到繁的順序逐步發(fā)布的等,若有不明白的地方可以參考本系列前面的文章,文末附有部分文章鏈接。

  本文主要內(nèi)容:

  • 自定義Window窗體樣式;
  • 基于自定義窗體實(shí)現(xiàn)自定義MessageBox消息提示框;

二.自定義Window窗體樣式

  自定義的Window窗體效果:

WPF自定義控件與樣式(13)-自定義窗體Window & 自適應(yīng)內(nèi)容大小消息框MessageBox?

WPF自定義控件與樣式(13)-自定義窗體Window & 自適應(yīng)內(nèi)容大小消息框MessageBox

  因?yàn)閃PF默認(rèn)的窗體比較簡(jiǎn)陋,大都需要自己實(shí)現(xiàn)Window窗體樣式效果,基本思路很簡(jiǎn)單:

  • 第一步:干掉默認(rèn)樣式:WindowStyle = WindowStyle.None;
  • 第二步:設(shè)置窗體透明:AllowsTransparency = true;
  • 第三步:設(shè)置自己的窗體樣式;

  這樣從外觀樣式上可以滿足,但做為窗體該具備的基本功能還沒(méi)有,需要另外來(lái)實(shí)現(xiàn)了:

  • 窗體Icon、標(biāo)題欄(可以通過(guò)樣式實(shí)現(xiàn));
  • 窗體的基本按鈕:最小化、最大化、關(guān)閉按鈕;
  • 窗體的鼠標(biāo)拖動(dòng);
  • 好像Win8、Win10的功能吧,窗體拖動(dòng)到桌面邊緣自動(dòng)最大化、還原;
  • 鼠標(biāo)調(diào)整窗口大??;
  • 雙擊標(biāo)題欄最大化、還原;

  上面的功能在本文中,一部分是自定義實(shí)現(xiàn)的,還有一部分是用了一個(gè)開(kāi)源庫(kù)(Microsoft.Windows.Shell)用于實(shí)現(xiàn)窗體大小、拖放等窗體基本功能,Microsoft.Windows.Shell文件下載:點(diǎn)我下載。

  進(jìn)入正題,自定義窗體WindowBase的后臺(tái)C#代碼:??文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-452068.html

    /// <summary>
    /// WindowBase.xaml 的交互邏輯
    /// </summary> public class WindowBase : Window { #region 默認(rèn)Header:窗體字體圖標(biāo)FIcon public static readonly DependencyProperty FIconProperty = DependencyProperty.Register("FIcon", typeof(string), typeof(WindowBase), new PropertyMetadata("\ue62e")); /// <summary> /// 按鈕字體圖標(biāo)編碼 /// </summary> public string FIcon { get { return (string)GetValue(FIconProperty); } set { SetValue(FIconProperty, value); } } #endregion #region 默認(rèn)Header:窗體字體圖標(biāo)大小 public static readonly DependencyProperty FIconSizeProperty = DependencyProperty.Register("FIconSize", typeof(double), typeof(WindowBase), new PropertyMetadata(20D)); /// <summary> /// 按鈕字體圖標(biāo)大小 /// </summary> public double FIconSize { get { return (double)GetValue(FIconSizeProperty); } set { SetValue(FIconSizeProperty, value); } } #endregion #region CaptionHeight 標(biāo)題欄高度 public static readonly DependencyProperty CaptionHeightProperty = DependencyProperty.Register("CaptionHeight", typeof(double), typeof(WindowBase), new PropertyMetadata(26D)); /// <summary> /// 標(biāo)題高度 /// </summary> public double CaptionHeight { get { return (double)GetValue(CaptionHeightProperty); } set { SetValue(CaptionHeightProperty, value); //this._WC.CaptionHeight = value;  } } #endregion #region CaptionBackground 標(biāo)題欄背景色 public static readonly DependencyProperty CaptionBackgroundProperty = DependencyProperty.Register( "CaptionBackground", typeof(Brush), typeof(WindowBase), new PropertyMetadata(null)); public Brush CaptionBackground { get { return (Brush)GetValue(CaptionBackgroundProperty); } set { SetValue(CaptionBackgroundProperty, value); } } #endregion #region CaptionForeground 標(biāo)題欄前景景色 public static readonly DependencyProperty CaptionForegroundProperty = DependencyProperty.Register( "CaptionForeground", typeof(Brush), typeof(WindowBase), new PropertyMetadata(null)); public Brush CaptionForeground { get { return (Brush)GetValue(CaptionForegroundProperty); } set { SetValue(CaptionForegroundProperty, value); } } #endregion #region Header 標(biāo)題欄內(nèi)容模板,以提高默認(rèn)模板,可自定義 public static readonly DependencyProperty HeaderProperty = DependencyProperty.Register( "Header", typeof(ControlTemplate), typeof(WindowBase), new PropertyMetadata(null)); public ControlTemplate Header { get { return (ControlTemplate)GetValue(HeaderProperty); } set { SetValue(HeaderProperty, value); } } #endregion #region MaxboxEnable 是否顯示最大化按鈕 public static readonly DependencyProperty MaxboxEnableProperty = DependencyProperty.Register( "MaxboxEnable", typeof(bool), typeof(WindowBase), new PropertyMetadata(true)); public bool MaxboxEnable { get { return (bool)GetValue(MaxboxEnableProperty); } set { SetValue(MaxboxEnableProperty, value); } } #endregion #region MinboxEnable 是否顯示最小化按鈕 public static readonly DependencyProperty MinboxEnableProperty = DependencyProperty.Register( "MinboxEnable", typeof(bool), typeof(WindowBase), new PropertyMetadata(true)); public bool MinboxEnable { get { return (bool)GetValue(MinboxEnableProperty); } set { SetValue(MinboxEnableProperty, value); } } #endregion public WindowBase() { this.WindowStyle = WindowStyle.None; this.AllowsTransparency = true; this.WindowStartupLocation = WindowStartupLocation.CenterScreen; this.Style = this.FindResource("DefaultWindowStyle") as Style; this.Icon = Images.CreateImageSourceFromImage(Properties.Resources.logo); //12=6+6//Margin=6,Border.Effect.BlueRadius=6 this.MaxHeight = SystemParameters.WorkArea.Height + 12 + 2; //bind command this.BindCommand(SystemCommands.CloseWindowCommand, this.CloseCommand_Execute); this.BindCommand(ApplicationCommands.Close, 

到了這里,關(guān)于WPF自定義控件與樣式(13)-自定義窗體Window & 自適應(yīng)內(nèi)容大小消息框MessageBox的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • WPF自定義嵌入彈框控件,支持內(nèi)容標(biāo)題自定義

    最近為了實(shí)現(xiàn)WPF中彈框組件寫了一個(gè)小例子: 組件要求: 1.自定義標(biāo)題 2自定義標(biāo)題顏色 3提供關(guān)閉按鈕, 4.彈框內(nèi)容可由調(diào)用方自行嵌入 xaml代碼 UserControl x:Class=\\\"WpfApp1.Controls.CustomPopup\\\" ? ? ? ? ? ? ?xmlns=\\\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\\\" ? ? ? ? ? ? ?xmlns:x=\\\"

    2024年02月16日
    瀏覽(23)
  • Winform中實(shí)現(xiàn)窗體控件適配(自適應(yīng)窗體)布局_通過(guò)C#代碼方式

    Winform中實(shí)現(xiàn)窗體控件適配(自適應(yīng)窗體)布局_通過(guò)C#代碼方式

    即:未啟用控件縮放效果代碼時(shí),控件內(nèi)容都是固定在窗體界面的指定位置,不會(huì)跟隨窗體的拉伸,放大而進(jìn)行適配,如下圖所示: 即:?jiǎn)⒂每丶s放效果代碼時(shí),控件內(nèi)容會(huì)跟隨窗體的拉伸,放大而進(jìn)行適配,如下圖所示: 實(shí)現(xiàn)思路是: ①在窗體初始化時(shí)先獲取窗體的寬

    2023年04月17日
    瀏覽(27)
  • WPF 設(shè)置窗體 Window的 WindowStyle=“None“ 上方有白條問(wèn)題

    WPF 設(shè)置窗體 Window的 WindowStyle=“None“ 上方有白條問(wèn)題

    WPF 重寫Window窗體的樣式為None,上方有一條白條線,如下圖: 解決方案: Window窗體屬性設(shè)置:ResizeMode=“CanMinimize” 解決之后顯示如下: 整體代碼參考如下: 備注:如果添加WindowStyle=“None” 和ResizeMode=\\\"CanMinimize\\\"同時(shí)設(shè)置,就不會(huì)顯示橫向?qū)Ш綏l

    2024年02月16日
    瀏覽(19)
  • C# winform usercontrol控件跟隨主窗體實(shí)現(xiàn)自動(dòng)大小

    C# winform usercontrol控件跟隨主窗體實(shí)現(xiàn)自動(dòng)大小

    usercontrol控件跟隨主窗體實(shí)現(xiàn)自動(dòng)大小 今天是跟著嘩哩嘩哩大學(xué)學(xué)習(xí)C的第N天,但是是學(xué)習(xí)usercontrol的第一天。 第一天遇到的問(wèn)題就是如何將usercontrol的大小跟隨主窗體的一起變大變小。視頻中教得很詳細(xì),首先是將usercontrol控件實(shí)例化,接著就是設(shè)置usercontrol的dock屬性為fil

    2024年02月12日
    瀏覽(23)
  • WPF 控件分辨率自適應(yīng)問(wèn)題

    WPF 控件分辨率自適應(yīng)時(shí),我首先想到的是使用ViewBox控件來(lái)做分辨率自適應(yīng)。 ViewBox這個(gè)控件通常和其他控件結(jié)合起來(lái)使用,是WPF中非常有用的控件。定義一個(gè)內(nèi)容容器。ViewBox組件的作用是拉伸或延展位于其中的組件,以填滿可用空間,使之有更好的布局及視覺(jué)效果。 組件常

    2024年02月07日
    瀏覽(22)
  • QT控件通過(guò)qss設(shè)置子控件的對(duì)齊方式、大小自適應(yīng)等

    QT控件通過(guò)qss設(shè)置子控件的對(duì)齊方式、大小自適應(yīng)等

    一些復(fù)雜控件,是有子控件的,每個(gè)子控件,都可以通過(guò)qss的雙冒號(hào)選擇器來(lái)選中,進(jìn)行獨(dú)特的樣式定義。很多控件都有子控件,太多了,后面單獨(dú)寫一篇文章來(lái)介紹各個(gè)控件的子控件。這里就隨便來(lái)幾個(gè)例子 例如下拉列表控件,右邊有個(gè)下拉按鈕(QComboBox::drop-down)就是子

    2024年02月15日
    瀏覽(26)
  • WPF --- 如何重寫WPF原生控件樣式

    上一篇中 WPF --- 重寫DataGrid樣式,因新產(chǎn)品UI需要,重寫了一下微軟 WPF 原生的 DataGrid 的樣式,包含如下內(nèi)容: 基礎(chǔ)設(shè)置,一些基本背景色,字體顏色等。 滾動(dòng)條樣式。 實(shí)現(xiàn)圓角表格,重寫表格的一些基礎(chǔ)樣式,例如 CellStyle , RowStyle , RowHeaderStyle , ColumnHeaderStyle 等。 重寫過(guò)

    2024年02月05日
    瀏覽(34)
  • WPF開(kāi)發(fā)一個(gè)可以自適應(yīng)排列的Panel控件

    WPF開(kāi)發(fā)一個(gè)可以自適應(yīng)排列的Panel控件

    一.控件介紹 ????初看標(biāo)題可能無(wú)法理解,我們看看什么是自適應(yīng)排列。 乍一看它有點(diǎn)像WrapPanel控件,都是從左至右排列,如果一行排列不下就換行繼續(xù)排列,但是細(xì)看你就會(huì)發(fā)現(xiàn)不對(duì),WrapPanel控件行尾是不會(huì)對(duì)齊的,也就是說(shuō)只要WrapPanel的子控件的寬度不一致,每一行的

    2024年04月08日
    瀏覽(23)
  • WPF 搜索框控件樣式

    WPF 搜索框控件樣式

    完全通過(guò)Xaml代碼實(shí)現(xiàn),使用了UserControl進(jìn)行封裝。功能包括聚焦時(shí)控件展開(kāi),輸入為空時(shí)的文字提示,以及待選提示項(xiàng)列表等效果。實(shí)現(xiàn)效果如下圖: xaml代碼 后臺(tái)代碼: 控件使用顯示示例:

    2024年02月16日
    瀏覽(20)
  • 實(shí)現(xiàn)WPF客戶端程序窗體大小隨著任務(wù)欄的顯示與隱藏自動(dòng)調(diào)整為全屏

    要實(shí)現(xiàn)WPF客戶端程序窗體大小隨著任務(wù)欄的顯示與隱藏自動(dòng)調(diào)整為全屏,可以使用以下步驟: 在窗體的代碼文件中,訂閱 SystemParameters.StaticPropertyChanged 事件,該事件會(huì)在任務(wù)欄顯示或隱藏時(shí)觸發(fā)。 這樣,當(dāng)任務(wù)欄顯示或隱藏時(shí),窗體的高度將自動(dòng)調(diào)整為全屏或屏幕可用工作

    2024年02月13日
    瀏覽(28)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包