前些天买了园子里林政老师的两本 WP8.1 的书籍。毕竟想要学得深入的话,还是得弄本书跟着前辈走的。

今天读到 1.4.3 节——框架的应用示例:自定义弹出窗口这一小节。总的来说,就是弄一个像 MessageDialog 的,但是又要具有能定义 Dialog 内的按钮、文本等等的功能(例如颜色、字体大小这些)。(先不说 ContentDialog ,即内容对话框能大部分做到)

原理是使用了一个 Popup 控件作为弹出窗口的容器,将 Popup 的 Child 属性赋值为弹出窗口的实例。在书中,弹出窗口的类为模板化控件,名叫 MyMessage,Template 包含了一个 Grid,然后 Grid 中又包含了一个 Rectangle 和一个 Border,Rectangle 用作半透明处理(相当于 Web 中模态窗口的背景部分半透明灰黑色),Border 里套了一个 StackPanel,StackPanel 里存放弹出窗口的内容。(感觉这个 StackPanel 完全是多余的)

效果(480*800中):

读《深入理解Windows Phone 8.1 UI控件编程》1.4.3 框架的应用示例:自定义弹出窗口有感

各层的解释:

读《深入理解Windows Phone 8.1 UI控件编程》1.4.3 框架的应用示例:自定义弹出窗口有感

相应的代码:

 1 <ControlTemplate TargetType="local:MyMessage">
 2                     <Grid VerticalAlignment="Stretch">
 3                         <Rectangle x:Name="backgroundRect" Grid.Row="0" Fill="Black" Opacity="0.7"/>
 4                         <Border 
 5                             VerticalAlignment="Top" 
 6                             BorderThickness="3" 
 7                             BorderBrush="Black">
 8                             <StackPanel Margin="0">
 9                                 <ContentPresenter x:Name="body"/>
10                             </StackPanel>
11                         </Border>
12                     </Grid>
13                 </ControlTemplate>
View Code

相关文章:

  • 2021-12-04
  • 2022-01-06
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-12-31
猜你喜欢
  • 2022-02-25
  • 2021-06-14
  • 2021-11-05
  • 2021-09-24
相关资源
相似解决方案