[源码下载]

重新想象 Windows 8.1 Store Apps (78) - 控件增强: ScrollViewer, FlipView, Popup

作者:webabcd

介绍
重新想象 Windows 8.1 Store Apps 之控件增强

  • ScrollViewer - 滚动视图控件的增强
  • FlipView - 滑动视图控件的增强
  • Popup - 弹出框控件的增强

示例
1、演示 ScrollViewer 的新特性
ScrollViewerDemo.xaml

  1. <Page
  2. x:Class="Windows81.Controls.ScrollViewerDemo"
  3. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  4. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  5. xmlns:local="using:Windows81.Controls"
  6. xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  7. xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  8. mc:Ignorable="d">
  9.  
  10. <Grid Background="Transparent">
  11. <StackPanel Margin="120 0 0 0">
  12.  
  13. <TextBlock Name="lblMsg" />
  14.  
  15. <!--
  16. ScrollViewer - 滚动视图控件,新增功能如下
  17. TopHeader - 水平可滚动,垂直不动
  18. LeftHeader - 垂直可滚动,水平不动
  19. TopLeftHeader - 固定不动
  20.  
  21. 注:如果要使用 TopHeader, LeftHeader, TopLeftHeader 则 ScrollViewer.Content 中的内容必须是 HorizontalAlignment="Left" VerticalAlignment="Top"
  22. -->
  23. <ScrollViewer Name="scrollViewer" Width="400" Height="400" Margin="0 10 0 0"
  24. HorizontalAlignment="Left" VerticalAlignment="Top"
  25. HorizontalScrollMode="Enabled" VerticalScrollMode="Enabled"
  26. HorizontalScrollBarVisibility="Visible" VerticalScrollBarVisibility="Visible">
  27.  
  28. <ScrollViewer.Content>
  29. <Image Source="/Assets/Son.jpg" Width="1000" HorizontalAlignment="Left" VerticalAlignment="Top" />
  30. </ScrollViewer.Content>
  31.  
  32. <ScrollViewer.TopHeader>
  33. <TextBlock Text="TopHeader" />
  34. </ScrollViewer.TopHeader>
  35.  
  36. <ScrollViewer.LeftHeader>
  37. <TextBlock Text="LeftHeader" />
  38. </ScrollViewer.LeftHeader>
  39.  
  40. <ScrollViewer.TopLeftHeader>
  41. <TextBlock Text="TopLeftHeader" />
  42. </ScrollViewer.TopLeftHeader>
  43.  
  44. </ScrollViewer>
  45.  
  46. <Button Name="btnChangeView" Content="Change View" Click="btnChangeView_Click" Margin="0 10 0 0" />
  47.  
  48. </StackPanel>
  49. </Grid>
  50. </Page>

ScrollViewerDemo.xaml.cs

  1. /*
  2. * ScrollViewer - 滚动视图控件
  3. *
  4. *
  5. * 关于 ScrollViewer 的基础请参见:
  6. * http://www.cnblogs.com/webabcd/archive/2013/03/07/2947313.html
  7. * http://www.cnblogs.com/webabcd/archive/2013/03/11/2953402.html
  8. */
  9.  
  10. using Windows.UI.Xaml.Controls;
  11.  
  12. namespace Windows81.Controls
  13. {
  14. public sealed partial class ScrollViewerDemo : Page
  15. {
  16. public ScrollViewerDemo()
  17. {
  18. this.InitializeComponent();
  19. }
  20.  
  21. private void btnChangeView_Click(object sender, Windows.UI.Xaml.RoutedEventArgs e)
  22. {
  23. // ScrollToHorizontalOffset 和 ScrollToVerticalOffset 都舍弃了
  24. // ChangeView() - 可以设置水平平移,垂直平移和缩放比例,并且可以指定是否使用动画过渡
  25. bool result = scrollViewer.ChangeView(100f, 100f, 1f, false);
  26. }
  27. }
  28. }

2、演示 FlipView 的新特性
FlipViewDemo.xaml

  1. <Page
  2. x:Class="Windows81.Controls.FlipViewDemo"
  3. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  4. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  5. xmlns:local="using:Windows81.Controls"
  6. xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  7. xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  8. mc:Ignorable="d">
  9.  
  10. <!--
  11. 本例是一个 FlipView 和 ListBox(用于显示小点点)联动的 Demo
  12.  
  13. FlipView 在 win8.1 中新增了一个属性 UseTouchAnimationsForAllNavigation,将其设置为 true 可以保证无论是基于触控的模式,还是基于按钮的模式,还是编程的模式,FlipView 都会有一致的动画体验
  14. -->
  15.  
  16. <!--定义 ListBox(用于显示小点点)的样式-->
  17. <Page.Resources>
  18. <Style x:Key="ItemContainerStyle" TargetType="ListBoxItem">
  19. <Setter Property="Width" Value="32"/>
  20. <Setter Property="Height" Value="20"/>
  21. <Setter Property="Template">
  22. <Setter.Value>
  23. <ControlTemplate TargetType="ListBoxItem">
  24. <Grid Background="{TemplateBinding Background}">
  25. <VisualStateManager.VisualStateGroups>
  26. <VisualStateGroup x:Name="CommonStates" >
  27. <VisualState x:Name="Normal" />
  28. <VisualState x:Name="PointerOver"/>
  29. </VisualStateGroup>
  30. <VisualStateGroup x:Name="SelectionStates" >
  31. <VisualState x:Name="Unselected" />
  32. <VisualState x:Name="Selected">
  33. <Storyboard>
  34. <ColorAnimation Storyboard.TargetName="fillColor" Storyboard.TargetProperty="(Rectangle.Fill).(SolidColorBrush.Color)" BeginTime="00:00:00" Duration="0" To="#FF58CC0C" />
  35. </Storyboard>
  36. </VisualState>
  37. <VisualState x:Name="SelectedUnfocused">
  38. <Storyboard>
  39. <ColorAnimation Storyboard.TargetName="fillColor" Storyboard.TargetProperty="(Rectangle.Fill).(SolidColorBrush.Color)" BeginTime="00:00:00" Duration="0" To="#FF58CC0C" />
  40. </Storyboard>
  41. </VisualState>
  42. <VisualState x:Name="SelectedPressed">
  43. <Storyboard>
  44. <ColorAnimation Storyboard.TargetName="fillColor" Storyboard.TargetProperty="(Rectangle.Fill).(SolidColorBrush.Color)" BeginTime="00:00:00" Duration="0" To="#FF58CC0C" />
  45. </Storyboard>
  46. </VisualState>
  47. <VisualState x:Name="SelectedPointerOver">
  48. <Storyboard>
  49. <ColorAnimation Storyboard.TargetName="fillColor" Storyboard.TargetProperty="(Rectangle.Fill).(SolidColorBrush.Color)" BeginTime="00:00:00" Duration="0" To="#FF58CC0C" />
  50. </Storyboard>
  51. </VisualState>
  52. </VisualStateGroup>
  53. </VisualStateManager.VisualStateGroups>
  54. <Rectangle x:Name="fillColor" IsHitTestVisible="False" Width="32" Height="20" Fill="#FFBFBFBF" Margin="5,0"/>
  55. </Grid>
  56. </ControlTemplate>
  57. </Setter.Value>
  58. </Setter>
  59. </Style>
  60. <Style x:Key="ListBoxStyle" TargetType="ListBox">
  61. <Setter Property="Foreground" Value="{StaticResource ListBoxForegroundThemeBrush}"/>
  62. <Setter Property="Background" Value="{StaticResource ListBoxBackgroundThemeBrush}"/>
  63. <Setter Property="BorderBrush" Value="{StaticResource ListBoxBorderThemeBrush}"/>
  64. <Setter Property="BorderThickness" Value="{StaticResource ListBoxBorderThemeThickness}"/>
  65. <Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Disabled"/>
  66. <Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Auto"/>
  67. <Setter Property="ScrollViewer.HorizontalScrollMode" Value="Disabled"/>
  68. <Setter Property="ScrollViewer.IsHorizontalRailEnabled" Value="True"/>
  69. <Setter Property="ScrollViewer.VerticalScrollMode" Value="Enabled"/>
  70. <Setter Property="ScrollViewer.IsVerticalRailEnabled" Value="True"/>
  71. <Setter Property="ScrollViewer.ZoomMode" Value="Disabled"/>
  72. <Setter Property="IsTabStop" Value="False"/>
  73. <Setter Property="TabNavigation" Value="Once"/>
  74. <Setter Property="FontFamily" Value="{StaticResource ContentControlThemeFontFamily}"/>
  75. <Setter Property="FontSize" Value="{StaticResource ControlContentThemeFontSize}"/>
  76. <Setter Property="ItemsPanel">
  77. <Setter.Value>
  78. <ItemsPanelTemplate>
  79. <VirtualizingStackPanel/>
  80. </ItemsPanelTemplate>
  81. </Setter.Value>
  82. </Setter>
  83. <Setter Property="Template">
  84. <Setter.Value>
  85. <ControlTemplate TargetType="ListBox">
  86. <Border x:Name="LayoutRoot" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}">
  87. <VisualStateManager.VisualStateGroups>
  88. <VisualStateGroup x:Name="CommonStates">
  89. <VisualState x:Name="Normal"/>
  90. <VisualState x:Name="Disabled"/>
  91. </VisualStateGroup>
  92. <VisualStateGroup x:Name="FocusStates">
  93. <VisualState x:Name="Focused"/>
  94. <VisualState x:Name="Unfocused"/>
  95. </VisualStateGroup>
  96. </VisualStateManager.VisualStateGroups>
  97. <ScrollViewer x:Name="ScrollViewer" HorizontalScrollMode="{TemplateBinding ScrollViewer.HorizontalScrollMode}" HorizontalScrollBarVisibility="{TemplateBinding ScrollViewer.HorizontalScrollBarVisibility}" IsHorizontalRailEnabled="{TemplateBinding ScrollViewer.IsHorizontalRailEnabled}" IsVerticalRailEnabled="{TemplateBinding ScrollViewer.IsVerticalRailEnabled}" Padding="{TemplateBinding Padding}" TabNavigation="{TemplateBinding TabNavigation}" VerticalScrollBarVisibility="{TemplateBinding ScrollViewer.VerticalScrollBarVisibility}" VerticalScrollMode="{TemplateBinding ScrollViewer.VerticalScrollMode}" ZoomMode="{TemplateBinding ScrollViewer.ZoomMode}">
  98. <ItemsPresenter/>
  99. </ScrollViewer>
  100. </Border>
  101. </ControlTemplate>
  102. </Setter.Value>
  103. </Setter>
  104. </Style>
  105. </Page.Resources>
  106.  
  107. <Grid Background="Transparent">
  108. <StackPanel Margin="120 0 0 0">
  109.  
  110. <!--
  111. FlipView - 滑动视图控件
  112. UseTouchAnimationsForAllNavigation - true 代表无论是基于触控的模式,还是基于按钮的模式,还是编程的模式,FlipView 都会有一致的动画体验
  113. -->
  114. <FlipView x:Name="flipView" Width="480" Height="270" BorderBrush="Black" BorderThickness="1" UseTouchAnimationsForAllNavigation="True">
  115. <FlipView.ItemTemplate>
  116. <DataTemplate>
  117. <Grid>
  118. <Image Width="480" Height="270" Source="{Binding Image}" Stretch="UniformToFill"/>
  119. <Border Background="#A5000000" Height="80" VerticalAlignment="Bottom">
  120. <TextBlock Text="{Binding Title}" FontSize="26.667" Foreground="#CCFFFFFF" Padding="15,20"/>
  121. </Border>
  122. </Grid>
  123. </DataTemplate>
  124. </FlipView.ItemTemplate>
  125. <FlipView.ItemsPanel>
  126. <ItemsPanelTemplate>
  127. <VirtualizingStackPanel Orientation="Horizontal"/>
  128. </ItemsPanelTemplate>
  129. </FlipView.ItemsPanel>
  130. </FlipView>
  131.  
  132. <ListBox x:Name="listBox" Width="478" Height="40" Background="#A5000000" HorizontalAlignment="Center" Margin="0,-5,0,0"
  133. SelectedItem="{Binding SelectedItem, ElementName=flipView, Mode=TwoWay}"
  134. ItemContainerStyle="{StaticResource ItemContainerStyle}"
  135. Style="{StaticResource ListBoxStyle}">
  136. <ListBox.ItemsPanel>
  137. <ItemsPanelTemplate>
  138. <StackPanel Orientation="Horizontal" HorizontalAlignment="Center"/>
  139. </ItemsPanelTemplate>
  140. </ListBox.ItemsPanel>
  141. </ListBox>
  142.  
  143. </StackPanel>
  144. </Grid>
  145. </Page>

FlipViewDemo.xaml.cs

  1. /*
  2. * FlipView - 滑动视图控件
  3. * FlipView 在 win8.1 中新增了一个属性 UseTouchAnimationsForAllNavigation,将其设置为 true 可以保证无论是基于触控的模式,还是基于按钮的模式,还是编程的模式,FlipView 都会有一致的动画体验
  4. *
  5. * 提示:本例是一个 FlipView 和 ListBox(用于显示小点点)联动的 Demo
  6. *
  7. * 关于 FlipView 的基础请参见:http://www.cnblogs.com/webabcd/archive/2013/01/21/2869167.html
  8. */
  9.  
  10. using System;
  11. using System.Collections.ObjectModel;
  12. using Windows.UI.Xaml.Controls;
  13. using Windows.UI.Xaml.Navigation;
  14. using Windows81.Common;
  15.  
  16. namespace Windows81.Controls
  17. {
  18. public sealed partial class FlipViewDemo : Page
  19. {
  20. public FlipViewDemo()
  21. {
  22. this.InitializeComponent();
  23. }
  24.  
  25. protected override void OnNavigatedTo(NavigationEventArgs e)
  26. {
  27. // 设置 FlipView 和 ListBox 的数据源
  28. var flipViewData = new FlipViewDataSource();
  29. flipView.ItemsSource = flipViewData.Items;
  30. listBox.ItemsSource = flipViewData.Items;
  31. listBox.SelectionChanged += listBox_SelectionChanged;
  32. }
  33.  
  34. void listBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
  35. {
  36. // 确保在按钮模式下,FlipView 能正确地显示箭头按钮
  37. flipView.Focus(Windows.UI.Xaml.FocusState.Pointer);
  38. }
  39. }
  40.  
  41. // 用于提供数据
  42. public sealed class FlipViewDataSource : BindableBase
  43. {
  44. private static Uri _baseUri = new Uri("ms-appx:///");
  45.  
  46. public FlipViewDataSource(String title, String picture)
  47. {
  48. this._title = title;
  49. this._picture = picture;
  50. }
  51.  
  52. private string _title = string.Empty;
  53. public string Title
  54. {
  55. get { return this._title; }
  56. set { this.SetProperty(ref this._title, value); }
  57. }
  58.  
  59. private Uri _image = null;
  60. private String _picture = null;
  61. public Uri Image
  62. {
  63. get
  64. {
  65. return new Uri(_baseUri, this._picture);
  66. }
  67.  
  68. set
  69. {
  70. this._picture = null;
  71. this.SetProperty(ref this._image, value);
  72. }
  73. }
  74.  
  75. private ObservableCollection<object> _items = new ObservableCollection<object>();
  76. public ObservableCollection<object> Items
  77. {
  78. get { return this._items; }
  79. }
  80.  
  81. public FlipViewDataSource()
  82. {
  83. Items.Add(new FlipViewDataSource("aaa", "Assets/Son.jpg"));
  84. Items.Add(new FlipViewDataSource("bbb", "Assets/Son.jpg"));
  85. Items.Add(new FlipViewDataSource("ccc", "Assets/Son.jpg"));
  86. Items.Add(new FlipViewDataSource("ddd", "Assets/Son.jpg"));
  87. Items.Add(new FlipViewDataSource("eee", "Assets/Son.jpg"));
  88. }
  89. }
  90. }

3、演示 Popup 的新特性
PopupDemo.xaml

  1. <Page
  2. x:Class="Windows81.Controls.PopupDemo"
  3. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  4. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  5. xmlns:local="using:Windows81.Controls"
  6. xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  7. xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  8. mc:Ignorable="d">
  9.  
  10. <Grid Background="Transparent">
  11. <StackPanel Margin="120 0 0 0">
  12.  
  13. <Button Name="btnClose" Content="关闭全部 Popup" Click="btnClose_Click" />
  14.  
  15. <Popup HorizontalOffset="0" VerticalOffset="50" IsLightDismissEnabled="False" IsOpen="True">
  16. <Popup.Child>
  17. <Border BorderBrush="Red" BorderThickness="1" Background="Blue" Width="200" Height="200">
  18. <StackPanel HorizontalAlignment="Center" VerticalAlignment="Center">
  19. <TextBlock Text="我是 Popup" FontSize="24.667" HorizontalAlignment="Center" />
  20. </StackPanel>
  21. </Border>
  22. </Popup.Child>
  23. </Popup>
  24.  
  25. <Popup HorizontalOffset="250" VerticalOffset="50" IsLightDismissEnabled="False" IsOpen="True">
  26. <Popup.Child>
  27. <Border BorderBrush="Red" BorderThickness="1" Background="Blue" Width="200" Height="200">
  28. <StackPanel HorizontalAlignment="Center" VerticalAlignment="Center">
  29. <TextBlock Text="我是 Popup" FontSize="24.667" HorizontalAlignment="Center" />
  30. </StackPanel>
  31. </Border>
  32. </Popup.Child>
  33. </Popup>
  34.  
  35. </StackPanel>
  36. </Grid>
  37. </Page>

PopupDemo.xaml.cs

  1. /*
  2. * Popup - 弹出框控件
  3. *
  4. *
  5. * 关于 Popup 的基础请参见:
  6. * http://www.cnblogs.com/webabcd/archive/2013/01/14/2859153.html
  7. */
  8.  
  9. using Windows.UI.Xaml;
  10. using Windows.UI.Xaml.Controls;
  11. using Windows.UI.Xaml.Media;
  12.  
  13. namespace Windows81.Controls
  14. {
  15. public sealed partial class PopupDemo : Page
  16. {
  17. public PopupDemo()
  18. {
  19. this.InitializeComponent();
  20. }
  21.  
  22. private void btnClose_Click(object sender, RoutedEventArgs e)
  23. {
  24. // VisualTreeHelper 中新增了 GetOpenPopups() 方法,可以获取可视树中的全部 Popup 对象
  25. var popups = VisualTreeHelper.GetOpenPopups(Window.Current);
  26. foreach (var popup in popups)
  27. {
  28. popup.IsOpen = false;
  29. }
  30. }
  31. }
  32. }

OK
[源码下载]

重新想象 Windows 8.1 Store Apps (78) - 控件增强: ScrollViewer, FlipView, Popup的更多相关文章

  1. 重新想象 Windows 8.1 Store Apps (81) - 控件增强: WebView 之加载本地 html, 智能替换 html 中的 url 引用, 通过 Share Contract 分享 WebView 中的内容, 为 WebView 截图

    [源码下载] 重新想象 Windows 8.1 Store Apps (81) - 控件增强: WebView 之加载本地 html, 智能替换 html 中的 url 引用, 通过 Share Co ...

  2. 重新想象 Windows 8.1 Store Apps (77) - 控件增强: 文本类控件的增强, 部分控件增加了 Header 属性和 HeaderTemplate 属性, 部分控件增加了 PlaceholderText 属性

    [源码下载] 重新想象 Windows 8.1 Store Apps (77) - 控件增强: 文本类控件的增强, 部分控件增加了 Header 属性和 HeaderTemplate 属性, 部分控件 ...

  3. 重新想象 Windows 8.1 Store Apps (79) - 控件增强: MediaElement, Frame

    [源码下载] 重新想象 Windows 8.1 Store Apps (79) - 控件增强: MediaElement, Frame 作者:webabcd 介绍重新想象 Windows 8.1 St ...

  4. 重新想象 Windows 8.1 Store Apps (80) - 控件增强: WebView 之基本应用, POST 数据, 与 JavaScript 交互

    [源码下载] 重新想象 Windows 8.1 Store Apps (80) - 控件增强: WebView 之基本应用, POST 数据, 与 JavaScript 交互 作者:webabcd 介 ...

  5. 重新想象 Windows 8.1 Store Apps (93) - 控件增强: GridView, ListView

    [源码下载] 重新想象 Windows 8.1 Store Apps (93) - 控件增强: GridView, ListView 作者:webabcd 介绍重新想象 Windows 8.1 Sto ...

  6. 重新想象 Windows 8.1 Store Apps (81) - 控件增强: 加载本地 html, 智能替换 html 中的 url 引用, 通过 Share Contract 分享 WebView 中的内容, 为 WebView 截图

    原文:重新想象 Windows 8.1 Store Apps (81) - 控件增强: 加载本地 html, 智能替换 html 中的 url 引用, 通过 Share Contract 分享 Web ...

  7. 重新想象 Windows 8 Store Apps (10) - 控件之 ScrollViewer 特性: Chaining, Rail, Inertia, Snap, Zoom

    原文:重新想象 Windows 8 Store Apps (10) - 控件之 ScrollViewer 特性: Chaining, Rail, Inertia, Snap, Zoom [源码下载] ...

  8. 重新想象 Windows 8 Store Apps (9) - 控件之 ScrollViewer 基础

    原文:重新想象 Windows 8 Store Apps (9) - 控件之 ScrollViewer 基础 [源码下载] 重新想象 Windows 8 Store Apps (9) - 控件之 Sc ...

  9. 重新想象 Windows 8.1 Store Apps 系列文章索引

    [源码下载] [重新想象 Windows 8 Store Apps 系列文章] 重新想象 Windows 8.1 Store Apps 系列文章索引 作者:webabcd 1.重新想象 Windows ...

随机推荐

  1. android studio 翻译插件

    插件下载地址 https://github.com/Skykai521/ECTranslation/releases 使用说明: http://gold.xitu.io/entry/573d8d92a ...

  2. EntityFramework Code First 添加唯一键

    在EntityFramework 6.1后可以直接使用 [Index("TitleIndex", IsUnique = true)] public string Title { g ...

  3. 使用https协议解决掉顽固不化的已解密的登录请求

    1.1 已解密的登录请求概述 在应用程序测试过程中,检测到将未加密的登录请求发送到服务器.由于登录过程所用的部分输入字段(例如:用户名.密码.电子邮件地址.社会保险号码,等等)是个人敏感信息,建议通过 ...

  4. makeJar

    task makeJar(type: Jar) { //指定生成的jar名 baseName 'plugin' //从哪里打包class文件 from('build/intermediates/cla ...

  5. 【译文】 C#面向对象的基本概念 (Basic C# OOP Concept) 第一部分(类,对象,变量,方法,访问修饰符)

    译文出处:http://www.codeproject.com/Articles/838365/Basic-Csharp-OOP-Concept 相关文档:http://files.cnblogs.c ...

  6. HP P1008打印机如何打印特殊纸张

    一.问题的提出 HP P1008中间有一个进纸槽,这是干什么的? 二.问题的分析 查说明,说这个进纸槽是叫做优先进纸槽,用于各种非常规的纸张的打印. 三.问题的解决 弄一张特殊尺寸的纸张,打开要编辑的 ...

  7. 【Thinking in Java-CHAPTER 1&&2】对象导论&&一切都是对象

    JAVA起源 从JDK诞生到现在已经有11年的时间了.沧海桑田一瞬间.转眼11年过去了,JDK已经发布了6个版本.在这11年里诞生了无数和Java相关的技术和标准.现在让我们进入时间隧道,重新回到19 ...

  8. ORA-12170:TNS:连接超时

    本文转自 http://www.cnblogs.com/kerrycode/archive/2012/12/14/2818421.html 1:首先检查网络是否能ping通 2:检查TNS配置(TNS ...

  9. java实例练习

    1.不使用中间变量交换两个数 public class Exchange { public static void main(String[] args) { Scanner scanner = ne ...

  10. 实战:ASP.NET MVC中把Views下面的视图放到Views文件夹外

    园子里写的文章的都是把控制器从传统的项目中的Controllers拿出来单独放,但很少几乎没有把视图从Views拿出去这样的文章,今天来写一个. 其实很简单!一步步解决问题就行了,下面记录如下,供需要 ...