Metro Style App开发快速入门 之基本控件使用总结

简介:

最近在研究Metro style App的控件使用, 下面我简单介绍下Metro style App的一些基本控件的使用方法。以后的我会介绍其他控件的使用。

运行环境请参考:Metro Style App之文件访问操作示例。当然控件使用最好自己操作一下比较好。

1、ProgressRing控件

<ProgressRing HorizontalAlignment= "Left"  Height= "20"  Margin= "38,43,0,0"  IsActive= "{Binding IsChecked,ElementName=IsActiveCBX}"  VerticalAlignment= "Top"  Width= "55" />
<CheckBox x:Name= "IsActiveCBX"  IsChecked= "True"  Content= "CheckBox"  HorizontalAlignment= "Left"  Height= "22"  Margin= "63,103,0,0"  VerticalAlignment= "Top"  Width= "17"  RenderTransformOrigin= "1.05900001525879,1.1599999666214" />

效果图:

 

2、进度条ProgressBar

<ProgressBar HorizontalAlignment= "Left"  Maximum= "100"  IsIndeterminate= "{Binding IsChecked,ElementName=CB1}"
                       ShowPaused= "{Binding IsChecked,ElementName=CB2}"  ShowError= "{Binding IsChecked,ElementName=CB3}"
                      Value= "{Binding Text,ElementName=Value, Converter={StaticResource StringToDoubleConverter}}"   Margin= "169,43,0,0"  VerticalAlignment= "Top"  Width= "100" />
<TextBox x:Name= "Value"  Width= "80"  Height= "30"  Margin= "169,71,1117,665" />
<CheckBox x:Name= "CB1"  Content= "IsIndeterminate"  HorizontalAlignment= "Left"  Margin= "169,108,0,0"  VerticalAlignment= "Top" />
<CheckBox x:Name= "CB2"  Content= "ShowPaused"  HorizontalAlignment= "Left"  Height= "19"  Margin= "169,158,0,0"  VerticalAlignment= "Top"  Width= "155" />
<CheckBox x:Name= "CB3"  Content= "SHowError"  HorizontalAlignment= "Left"  Height= "14"  Margin= "169,208,0,0"  VerticalAlignment= "Top"  Width= "119" />

 

3、ToggleSwitch控件,OnContent,OffContent也可以采用Binding的形式。ToggleSwitch控件就像一个开关。

<ToggleSwitch Header= "Head Content"  OnContent= "On Content"  OffContent= "Off Content"  HorizontalAlignment= "Left"  Height= "54"  Margin= "324,49,0,0"  VerticalAlignment= "Top"  Width= "98" />


4、CheckBox控件。IsHitTestVisible鼠标单击时,CheckBox无效。IsTabStop属性:当按Tabl时,直接跳到下一个。

<CheckBox x:Name= "IsChecked"  IsHitTestVisible= "False"  IsTabStop= "False"   Content= "IsChecked "  Margin= "10,0,0,0"  VerticalAlignment= "Center"
                    IsChecked= "{Binding IsChecked, ElementName=CheckBox1}" />

5、ComboBox控件。

<ComboBox HorizontalAlignment= "Left"  Margin= "324,126,0,0"  VerticalAlignment= "Top"  Width= "120"  SelectionChanged= "ComboBox_SelectionChanged"  SelectedIndex= "0" >
             <TextBlock>Item1</TextBlock>
             <TextBlock>Item2</TextBlock>
             <TextBlock>Item3</TextBlock>
             <TextBlock>Item4</TextBlock>
</ComboBox>

 获得选中的Item值。

private  void  ComboBox_SelectionChanged( object  sender, SelectionChangedEventArgs e)
{
       string  selectItem = ((TextBlock)e.AddedItems[0]).Text;
  }

 

6、Image控件。

ToolTipService.ToolTip="Oregon Coast", ToolTipService.Placement="Right" 这两个属性表示鼠标移动到图片时显示的文本以及文本位置。

<Image x:Name= "Image1"  Source= "images/image1.jpg"  Width= "200"  Height= "100"  Stretch= "UniformToFill"  Margin= "5"  ToolTipService.ToolTip= "Oregon Coast"  ToolTipService.Placement= "Right" />

 

 7、Popup控件。

当单击Button时,显示Popub控件,再次单击Button时,则隐藏Popup控件。

Popup popup = new  Popup();
bool  bShowPopup = false ;
private  void  PopupButton_Click( object  sender, RoutedEventArgs e)
{
     bShowPopup = !bShowPopup;
     if  (bShowPopup)
     {
         PopupButton.Content = "Hide Popub" ;
         popup.Child = new  PopuPanelControl();
         popup.VerticalOffset = 500;
         popup.HorizontalOffset = 100;
         popup.IsOpen = true ;
     }
     else
     {
         PopupButton.Content = "Show Popup" ;
         popup.IsOpen = false ;
     }
}

 下面是自定义的Popup控件。当然可以根据自己的喜好来定义。

<UserControl
     x:Class= "BasicHandle.BasicControl.PopuPanelControl"
     xmlns= "http://schemas.microsoft.com/winfx/2006/xaml/presentation"
     xmlns:x= "http://schemas.microsoft.com/winfx/2006/xaml"
     xmlns:local= "using:BasicHandle.BasicControl"
     xmlns:d= "http://schemas.microsoft.com/expression/blend/2008"
     xmlns:mc= "http://schemas.openxmlformats.org/markup-compatibility/2006"
     mc:Ignorable= "d"  d:DesignHeight= "300"  d:DesignWidth= "400" >
     <Border BorderBrush= "#19000000"  BorderThickness= "1"  Background= "White" >
         <Grid>
             <TextBlock HorizontalAlignment= "Left"  Foreground= "Black"  Margin= "35,69,0,0"  TextWrapping= "Wrap"  Text= "This is Popup Panel Control"  VerticalAlignment= "Top"  Height= "97"  Width= "181" />
         </Grid>
     </Border>
</UserControl>

 

7、自定义Button控件。

VisualStateManager.VisualStateGroups用来管理控件母板的显示效果的。

<Style x:Key= "CustomButtonStyle"  TargetType= "Button" >
             <Setter Property= "Background"  Value= "Orange" />
             <Setter Property= "Foreground"  Value= "Black" />
             <Setter Property= "FontFamily"  Value= "Comic Sans MS" />
             <Setter Property= "FontSize"  Value= "30" />
             <Setter Property= "Template" >
                 <Setter.Value>
                     <ControlTemplate TargetType= "Button" >
                         <Grid>
                             <VisualStateManager.VisualStateGroups>
                                 <VisualStateGroup x:Name= "CommonStates" >
                                     <VisualState x:Name= "Normal" />
                                     <VisualState x:Name= "PointerOver" >
                                         <Storyboard>
                                             <ColorAnimation Duration= "0"  To= "Red"  Storyboard.TargetProperty= "(Rectangle.Fill).(SolidColorBrush.Color)"  Storyboard.TargetName= "Border"  />
                                         </Storyboard>
                                     </VisualState>
                                     <VisualState x:Name= "Pressed" >
                                         <Storyboard>
                                             <ColorAnimation Duration= "0"  To= "Black"  Storyboard.TargetProperty= "(Rectangle.Fill).(SolidColorBrush.Color)"  Storyboard.TargetName= "Border"  />
                                             <ColorAnimation Duration= "0"  To= "White"  Storyboard.TargetProperty= "(TextBlock.Foreground).(SolidColorBrush.Color)"  Storyboard.TargetName= "Content"  />
                                         </Storyboard>
                                     </VisualState>
                                 </VisualStateGroup>
                             </VisualStateManager.VisualStateGroups>
                             <Grid>
                                 <Rectangle x:Name= "Border"  Stroke= "Black"  Fill= "Orange"  Margin= "-5" />
                                 <ContentPresenter x:Name= "Content" />
                             </Grid>
                         </Grid>
                     </ControlTemplate>
                 </Setter.Value>
             </Setter>
         </Style>

  如下图:当鼠标移动到控件时显示红色。

 需要特别注意的是:Metro Style App采用Visual State。之前的触发器已经没有了。当然在这里我只是介绍Metro Style App控件的一些简单的用法,Metro Style App的Visual Manager不在此处介绍。


总结:Metro Style App的基本控件基本跟以前一样,改变比较大的事触发器没了,代之的是Visual State。

以上只是自己的一点学习心得,如果有什么意见和建议,欢迎大家提出!当然自己还在学习研究中,希望与大家共同学习,一起进步!

 


本文转自Work Hard Work Smart博客园博客,原文链接:http://www.cnblogs.com/linlf03/archive/2012/03/15/2398338.html,如需转载请自行联系原作者

目录
相关文章
|
2月前
|
人工智能 文字识别 小程序
旅游社用什么工具收报名 + 资料?不开发 App 也能自动收集信息
本文探讨了旅游行业中报名信息收集的常见痛点及解决方案,重点介绍了二维码表单工具在提升信息收集效率、简化操作流程方面的优势。通过对比多种工具,分析其适用场景与实际应用逻辑,为一线旅游从业者提供高效、低成本的执行参考。
|
3月前
|
容器
HarmonyOS NEXT仓颉开发语言实战案例:外卖App
仓颉语言实战分享,教你如何用仓颉开发外卖App界面。内容包括页面布局、导航栏自定义、搜索框实现、列表模块构建等,附完整代码示例。轻松掌握Scroll、List等组件使用技巧,提升HarmonyOS应用开发能力。
|
3月前
|
IDE 开发工具 开发者
使用DevEcoStudio 开发、编译鸿蒙 NEXT_APP 以及使用中文插件
# 使用DevEcoStudio 开发、编译鸿蒙 NEXT_APP 以及使用中文插件 #鸿蒙开发工具 #DevEco Studio
291 1
|
3月前
|
人工智能 小程序 JavaScript
【一步步开发AI运动APP】十、微调优化内置运动分析器,灵活适配不同的应用场景
本文介绍了如何通过【一步步开发AI运动APP】系列博文,利用`ISportOptimizer`对内置运动分析器进行微调优化。相比小程序,APP框架(如uni-app)因技术差异,无法直接修改运动分析器参数,因此提供了统一的优化机制。开发者可通过`ISportOptimizer`获取和更新检测规则、动作样本等,灵活适应不同场景需求,如全民运动赛事的宽松模式或学生体测的严格模式。文中还提供了示例代码,展示如何对具体运动项目(如仰卧起坐)进行优化。需要注意的是,微调优化适用于标准动作的小范围调整,若动作变化过大(如花式跳绳),可期待后续自定义扩展功能。
|
3月前
|
容器
HarmonyOS NEXT仓颉开发语言实战案例:健身App
本期分享一个健身App首页的布局实现,顶部采用Stack容器实现重叠背景与偏移效果,列表部分使用List结合Scroll实现可滚动内容。代码结构清晰,适合学习HarmonyOS布局技巧。
|
3月前
|
容器
HarmonyOS NEXT仓颉开发语言实战案例:银行App
仓颉语言银行App项目分享,页面布局采用List容器,实现沉浸式体验与模块化设计。顶部资产模块结合Stack与Row布局,背景图与内容分离,代码清晰易懂;功能按钮部分通过负边距实现上移效果,圆角仅保留顶部;热门推荐使用header组件,结构更规范。整体代码风格与ArkTS相似,但细节更灵活,适合金融类应用开发。
|
4月前
|
存储 消息中间件 前端开发
PHP后端与uni-app前端协同的校园圈子系统:校园社交场景的跨端开发实践
校园圈子系统校园论坛小程序采用uni-app前端框架,支持多端运行,结合PHP后端(如ThinkPHP/Laravel),实现用户认证、社交关系管理、动态发布与实时聊天功能。前端通过组件化开发和uni.request与后端交互,后端提供RESTful API处理业务逻辑并存储数据于MySQL。同时引入Redis缓存热点数据,RabbitMQ处理异步任务,优化系统性能。核心功能包括JWT身份验证、好友系统、WebSocket实时聊天及活动管理,确保高效稳定的用户体验。
248 4
PHP后端与uni-app前端协同的校园圈子系统:校园社交场景的跨端开发实践
|
3月前
|
安全 新制造
不用开发APP,也能实现设备巡检自动提醒和记录归档
设备巡检新方案!告别纸质表格,用二维码轻松搞定自动提醒和记录归档。某工厂分享如何通过草料二维码实现一物一码、扫码填写巡检信息,自动生成数据归档,还能设置定期提醒,确保巡检任务按时完成。无需额外开发 App,低成本高效管理,为设备巡检提供简单又实用的解决方案。
|
4月前
|
人工智能 JavaScript 前端开发
借助 CodeBuddy,我轻松开发出三分钟读书 App
借助 CodeBuddy,我轻松开发出三分钟读书 App
103 6
|
4月前
|
人工智能 小程序 API
【一步步开发AI运动APP】九、自定义姿态动作识别检测——之关键点追踪
本文介绍了【一步步开发AI运动APP】系列中的关键点追踪技术。此前分享的系列博文助力开发者打造了多种AI健身场景的小程序,而新系列将聚焦性能更优的AI运动APP开发。文章重点讲解了“关键点位变化追踪”能力,适用于动态运动(如跳跃)分析,弥补了静态姿态检测的不足。通过`pose-calc`插件,开发者可设置关键点(如鼻子)、追踪方向(X或Y轴)及变化幅度。示例代码展示了如何在`uni-app`框架中使用`createPointTracker`实现关键点追踪,并结合人体识别结果完成动态分析。具体实现可参考文档与Demo示例。

热门文章

最新文章