首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 開發 WPF/Silverlight 動畫與遊戲教學 (44-1):主角屬性面板與自訂 TabControl 設計

     編輯:關於C語言

主角屬性面板架構設計:自訂 TabControl 與 QXIcon 四狀態選項卡

遊戲面板大量使用選項卡,原生 TabControl 樣板重寫困難。本文採用用戶控件 + QXIcon 實現高自由度 QXTabControl,並展示屬性面板整合。

一、QXTabControl 結構設計

<UserControl x:Class="QXGameEngine.Control.QXTabControl" ...>
  <Canvas>
    <StackPanel x:Name="Head"/>       <!-- 標籤列容器 -->
    <ContentPresenter x:Name="Body"/> <!-- 內容區,支援任意 UIElement -->
  </Canvas>
</UserControl>
  • StackPanel:Orientation 切換橫向/縱向標籤排列
  • ContentPresenter:萬用內容容器,動態替換面板內容

二、選項卡項目:QXIcon HitModes 四狀態模式

參考《劍俠世界》風格,實現四張圖片無縫切換:

case IconTypes.HitModes:
    this.MouseEnter += (s, e) => { Container.Background = Hit ? HitNewBodySource : NewSource; };
    this.MouseLeave += (s, e) => { Container.Background = Hit ? HitBodySource : _BodySource; };
    this.MouseLeftButtonDown += (s, e) => { Hit = !Hit; };
    break;

四狀態對應:

狀態觸發條件使用筆刷
預設未選中、滑鼠離開_BodySource
懸停未選中、滑鼠進入NewSource
選中已選中、滑鼠離開HitBodySource
選中懸停已選中、滑鼠進入HitNewBodySource
四狀態選項卡視覺效果
圖 1:QXIcon HitModes 四狀態視覺反饋演示

三、面板整合預覽

屬性面板包含四個分頁:屬性、聲望、稱號、榮譽。每個分頁對應不同內容面板,透過 SelectionChanged 事件動態載入。裝備管理與加點器將在後續章節詳細講解。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved