技术开发 频道

使用WPF新功能构建丰富的客户端应用

  7.在Read模式情况下,我们想要email地址和主页URL这两项显示成按钮。点击email地址这个按钮应该打开默认的email应用程序,点击主页URL的按钮应该在Frame_RightPane里显示主页的内容。我们创建两个URI,在按钮的事件处理函数里,只要简单地导航到这两个URI就可以了。我们在ContactDetailPage1.xaml.cs里修改代码:

        private void NavigateToHome(object sender, RoutedEventArgs e)
        {
            
if (this.txtHomePage != null)
            {
                NavigationService ns
=
                        NavigationService.GetNavigationService(
this);
                ns.Navigate(
new Uri(this.txtHomePage.Text));
            }
        }

        
private void SendEmail(object sender, RoutedEventArgs e)
        {
            
if (this.txtEmailAddress != null)
            {
                NavigationService ns
=
                            NavigationService.GetNavigationService(
this);
                ns.Navigate(
new Uri("mailto:" + this.txtEmailAddress.Text));
            }
        }

  8.像我们在第一个page function里做过的一样,我们创建第二个功能页ContactDetailPage2,设定类型参数为Object。这个页面由两个TextBox组成,一个显示家庭地址,另一个显示公司地址。另外还添加一个Cancel和一个Finish按钮。

<PageFunction x:Class="AddressBook.ContactDetailPage2"
              x:TypeArguments
="sys:Object"
              xmlns
="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
              xmlns:x
="http://schemas.microsoft.com/winfx/2006/xaml"
              xmlns:sys
="clr-namespace:System;assembly=mscorlib"
              Title
="ContactDetailPage2" >
  
    
<Grid
      
Name="RootGrid"
      VerticalAlignment
="Center"
      HorizontalAlignment
="Center" >
      
      
<Grid.ColumnDefinitions>
        
<ColumnDefinition Width="200"/>
        
<ColumnDefinition Width="200"/>
      
</Grid.ColumnDefinitions>
      
<Grid.RowDefinitions>
        
<RowDefinition Height="30"/>
        
<RowDefinition Height="110"/>
        
<RowDefinition Height="110"/>
        
<RowDefinition Height="60"/>
      
</Grid.RowDefinitions>

        
<!-- Labels -->
        
<TextBlock Width="100" Height="30"
            Grid.Column
="0" Grid.Row="1" > Business Address</TextBlock>
        
<TextBlock Width="100" Height="30"
            Grid.Column
="0" Grid.Row="2" > Home Address</TextBlock>

        
<!-- Input fields -->
        
<TextBox Name="txtHomeAddress" Width="200" Height="100"
                 Grid.Column
="1" Grid.Row="1" TextWrapping="Wrap"
                 Text
="{Binding Path=HomeAddress, Mode=TwoWay}"/>
        
<TextBox Name="txtBusinessAddress" Width="200" Height="100"
                 Grid.Column
="1" Grid.Row="2" TextWrapping="Wrap"
                 Text
="{Binding Path=BusinessAddress, Mode=TwoWay}"/>

        
<DockPanel Name="ButtonPanel1" Grid.Column="0" Grid.Row="3" >
                
<Button Name="btnBack" Width="100" Height="30"
                        Click
="OnBackClick">Back</Button>
                
<Button Name="btnCancel" Width="100" Height="30"
                        Click
="OnCancelClick">Cancel</Button>
        
</DockPanel>
        
<DockPanel Name="ButtonPanel2" Grid.Column="1" Grid.Row="3">
            
<Button Name="btnFinish" Width="100" Height="30"
                    Click
="OnFinishClick">Finish</Button>
        
</DockPanel>

    
</Grid>
</PageFunction>
0
相关文章