昨天想在 uwp 上实现,在 SplitView 控件的左侧,通过手指滑动打开 SplitView 的 Pane 面板,而不仅仅是通过 “汉堡按钮” 点击打开。 在 stackoverflow 看到一个帖子, 有讨论一个方案,然 ...
昨天想在 uwp 上实现,在 SplitView 控件的左侧,通过手指滑动打开 SplitView 的 Pane 面板,
而不仅仅是通过 “汉堡按钮” 点击打开。
在 stackoverflow 看到一个帖子, 有讨论一个方案,然后看了一下里面的一个 github 工程,实现了
SwipeableSplitView(工程连接), 不过下载代码分析了一下,代码量太大,通过继承 SplitView 控件,添加很多 xaml 和
C# 代码,有点复杂了。于是想了一个简单的方式,直接控制 SplitView 中 Template 的 CompositeTransform 和
VisualTransition 属性就可以了,几十行 C# 代码就能搞定。
1、运行效果 (VS2015 创建的 get='_blank'>win10 UWP 工程)
1)在 phone上:
2)在 win10 pc 上:
2、分析 SplitView 控件的模板(只用来分析,并不使用)
1)在空白页面中,添加一个 SplitView,在文档大纲中,右键单击 SplitView 控件,选择编辑副本:
2)在生成的代码中,可以看到,当前 SplitView 控件的组成部分:
这里重点使用 PaneRoot 中的 PaneTransform 属性,和 视觉状态属性中的 VisualTransition From="Closed" To="OpenOverlayLeft" 属性。
VS 所有生成的 SplitView 的 Template 代码:
1 <ControlTemplate x:Key="SplitViewControlTemplate1" TargetType="SplitView"> 2 <Grid Background="{TemplateBinding Background}"> 3 <VisualStateManager.VisualStateGroups> 4 <VisualStateGroup x:Name="DisplayModeStates"> 5 <VisualStateGroup.Transitions> 6 <VisualTransition From="Closed" To="OpenOverlayLeft"> 7 <Storyboard> 8 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="PaneRoot" Storyboard.TargetProperty="Visibility"> 9 <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="Visible"/> 10 </ObjectAnimationUsingKeyFrames> 11 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="HCPaneBorder" Storyboard.TargetProperty="Visibility"> 12 <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="Visible"/> 13 </ObjectAnimationUsingKeyFrames> 14 <DoubleAnimationUsingKeyFrames Storyboard.TargetName="PaneTransform" Storyboard.TargetProperty="TranslateX"> 15 <DiscreteDoubleKeyFrame KeyTime="0:0:0" Value="{Binding TemplateSettings.NegativeOpenPaneLength, RelativeSource={RelativeSource Mode=TemplatedParent}}"/> 16 <SplineDoubleKeyFrame KeyTime="0:0:0.35" KeySpline="0.1,0.9 0.2,1.0" Value="0"/> 17 </DoubleAnimationUsingKeyFrames> 18 <DoubleAnimationUsingKeyFrames Storyboard.TargetName="PaneClipRectangleTransform" Storyboard.TargetProperty="TranslateX"> 19 <DiscreteDoubleKeyFrame KeyTime="0:0:0" Value="{Binding TemplateSettings.OpenPaneLength, RelativeSource={RelativeSource Mode=TemplatedParent}}"/> 20 <SplineDoubleKeyFrame KeyTime="0:0:0.35" KeySpline="0.1,0.9 0.2,1.0" Value="0"/> 21 </DoubleAnimationUsingKeyFrames> 22 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="LightDismissLayer" Storyboard.TargetProperty="Visibility"> 23 <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="Visible"/> 24 </ObjectAnimationUsingKeyFrames> 25 </Storyboard> 26 </VisualTransition> 27 <VisualTransition From="Closed" To="OpenOverlayRight"> 28 <Storyboard> 29 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="PaneRoot" Storyboard.TargetProperty="Visibility"> 30 <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="Visible"/> 31 </ObjectAnimationUsingKeyFrames> 32 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="PaneRoot" Storyboard.TargetProperty="HorizontalAlignment"> 33 <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="Right"/> 34 </ObjectAnimationUsingKeyFrames> 35 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="HCPaneBorder" Storyboard.TargetProperty="HorizontalAlignment"> 36 <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="Left"/> 37 </ObjectAnimationUsingKeyFrames> 38 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="HCPaneBorder" Storyboard.TargetProperty="Visibility"> 39 <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="Visible"/> 40 </ObjectAnimationUsingKeyFrames> 41 <DoubleAnimationUsingKeyFrames Storyboard.TargetName="PaneTransform" Storyboard.TargetProperty="TranslateX"> 42 <DiscreteDoubleKeyFrame KeyTime="0:0:0" Value="{Binding TemplateSettings.OpenPaneLength, RelativeSource={RelativeSource Mode=TemplatedParent}}"/> 43 <SplineDoubleKeyFrame KeyTime="0:0:0.35" KeySpline="0.1,0.9 0.2,1.0" Value="0"/> 44 </DoubleAnimationUsingKeyFrames> 45 <DoubleAnimationUsingKeyFrames Storyboard.TargetName="PaneClipRectangleTransform" Storyboard.TargetProperty="TranslateX"> 46 <DiscreteDoubleKeyFrame KeyTime="0:0:0" Value="{Binding TemplateSettings.NegativeOpenPaneLength, RelativeSource={RelativeSource Mode=TemplatedParent}}"/> 47 <SplineDoubleKeyFrame KeyTime="0:0:0.35" KeySpline="0.1,0.9 0.2,1.0" Value="0"/> 48 </DoubleAnimationUsingKeyFrames> 49 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="LightDismissLayer" Storyboard.TargetProperty="Visibility"> 50 <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="Visible"/> 51 </ObjectAnimationUsingKeyFrames> 52 </Storyboard> 53 </VisualTransition> 54 <VisualTransition From="ClosedCompactLeft" To="OpenCompactOverlayLeft"> 55 <Storyboard> 56 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ColumnDefinition1" Storyboard.TargetProperty="Width"> 57 <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="{Binding TemplateSettings.CompactPaneGridLength, FallbackValue=0, RelativeSource={RelativeSource Mode=TemplatedParent}}"/> 58 </ObjectAnimationUsingKeyFrames> 59 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentRoot" Storyboard.TargetProperty="(Grid.Column)"> 60 <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="1"/> 61 </ObjectAnimationUsingKeyFrames> 62 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentRoot" Storyboard.TargetProperty="(Grid.ColumnSpan)"> 63 <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="1"/> 64 </ObjectAnimationUsingKeyFrames> 65 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="PaneRoot" Storyboard.TargetProperty="Visibility"> 66 <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="Visible"/> 67 </ObjectAnimationUsingKeyFrames> 68 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="HCPaneBorder" Storyboard.TargetProperty="Visibility"> 69 <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="Visible"/> 70 </ObjectAnimationUsingKeyFrames> 71 <DoubleAnimationUsingKeyFrames Storyboard.TargetName="PaneClipRectangleTransform" Storyboard.TargetProperty="TranslateX"> 72 <DiscreteDoubleKeyFrame KeyTime="0:0:0" Value="{Binding TemplateSettings.NegativeOpenPaneLengthMinusCompactLength, RelativeSource={RelativeSource Mode=TemplatedParent}}"/> 73 <SplineDoubleKeyFrame KeyTime="0:0:0.35" KeySpline="0.1,0.9 0.2,1.0" Value="0"/> 74 </DoubleAnimationUsingKeyFrames> 75 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="LightDismissLayer" Storyboard.TargetProperty="Visibility"> 76 <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="Visible"/> 77 </ObjectAnimationUsingKeyFrames> 78 </Storyboard> 79 </VisualTransition> 80 <VisualTransition From="ClosedCompactRight" To="OpenCompactOverlayRight"> 81 <Storyboard> 82 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ColumnDefinition1" Storyboard.TargetProperty="Width"> 83 <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="*"/> 84 </ObjectAnimationUsingKeyFrames> 85 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ColumnDefinition2" Storyboard.TargetProperty="Width"> 86 <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="{Binding TemplateSettings.CompactPaneGridLength, FallbackValue=0, RelativeSource={RelativeSource Mode=TemplatedParent}}"/> 87 </ObjectAnimationUsingKeyFrames> 88 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentRoot" Storyboard.TargetProperty="(Grid.ColumnSpan)"> 89 <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="1"/> 90 </ObjectAnimationUsingKeyFrames> 91 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="PaneRoot" Storyboard.TargetProperty="Visibility"> 92 <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="Visible"/> 93 </ObjectAnimationUsingKeyFrames> 94 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="PaneRoot" Storyboard.TargetProperty="HorizontalAlignment"> 95 <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="Right"/> 96 </ObjectAnimationUsingKeyFrames> 97 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="HCPaneBorder" Storyboard.TargetProperty="HorizontalAlignment"> 98 <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="Left"/> 99 </ObjectAnimationUsingKeyFrames>100 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="HCPaneBorder" Storyboard.TargetProperty="Visibility">101 <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="Visible"/>102 </ObjectAnimationUsingKeyFrames>103 <DoubleAnimationUsingKeyFrames Storyboard.TargetName="PaneClipRectangleTransform" Storyboard.TargetProperty="TranslateX">104 <DiscreteDoubleKeyFrame KeyTime="0:0:0" Value="{Binding TemplateSettings.OpenPaneLengthMinusCompactLength, RelativeSource={RelativeSource Mode=TemplatedParent}}"/>105 <SplineDoubleKeyFrame KeyTime="0:0:0.35" KeySpline="0.1,0.9 0.2,1.0" Value="0"/>106 </DoubleAnimationUsingKeyFrames>107 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="LightDismissLayer" Storyboard.TargetProperty="Visibility">108 <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="Visible"/>109 </ObjectAnimationUsingKeyFrames>110 </Storyboard>111 </VisualTransition>112 <VisualTransition From="OpenOverlayLeft" To="Closed">113 <Storyboard>114 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="PaneRoot" Storyboard.TargetProperty="Visibility">115 <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="Visible"/>116 </ObjectAnimationUsingKeyFrames>117 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="HCPaneBorder" Storyboard.TargetProperty="Visibility">118 <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="Visible"/>119 </ObjectAnimationUsingKeyFrames>120 <DoubleAnimationUsingKeyFrames Storyboard.TargetName="PaneTransform" Storyboard.TargetProperty="TranslateX">121 <SplineDoubleKeyFrame KeyTime="0:0:0.12" KeySpline="0.1,0.9 0.2,1.0" Value="{Binding TemplateSettings.NegativeOpenPaneLength, RelativeSource={RelativeSource Mode=TemplatedParent}}"/>122 </DoubleAnimationUsingKeyFrames>123 <DoubleAnimationUsingKeyFrames Storyboard.TargetName="PaneClipRectangleTransform" Storyboard.TargetProperty="TranslateX">124 <SplineDoubleKeyFrame KeyTime="0:0:0.12" KeySpline="0.1,0.9 0.2,1.0" Value="{Binding TemplateSettings.OpenPaneLength, RelativeSource={RelativeSource Mode=TemplatedParent}}"/>125 </DoubleAnimationUsingKeyFrames>126 </Storyboard>127 </VisualTransition>128 <VisualTransition From="OpenOverlayRight" To="Closed">129 <Storyboard>130 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="PaneRoot" Storyboard.TargetProperty="Visibility">131 <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="Visible"/>132 </ObjectAnimationUsingKeyFrames>133 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="PaneRoot" Storyboard.TargetProperty="HorizontalAlignment">134 <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="Right"/>135 </ObjectAnimationUsingKeyFrames>136 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="HCPaneBorder" Storyboard.TargetProperty="HorizontalAlignment">137 <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="Left"/>138 </ObjectAnimationUsingKeyFrames>139 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="HCPaneBorder" Storyboard.TargetProperty="Visibility">140 <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="Visible"/>141 </ObjectAnimationUsingKeyFrames>142 <DoubleAnimationUsingKeyFrames Storyboard.TargetName="PaneTransform" Storyboard.TargetProperty="TranslateX">143 <SplineDoubleKeyFrame KeyTime="0:0:0.12" KeySpline="0.1,0.9 0.2,1.0" Value="{Binding TemplateSettings.OpenPaneLength, RelativeSource={RelativeSource Mode=TemplatedParent}}"/>144 </DoubleAnimationUsingKeyFrames>145 <DoubleAnimationUsingKeyFrames Storyboard.TargetName="PaneClipRectangleTransform" Storyboard.TargetProperty="TranslateX">146 <SplineDoubleKeyFrame KeyTime="0:0:0.12" KeySpline="0.1,0.9 0.2,1.0" Value="{Binding TemplateSettings.NegativeOpenPaneLength, RelativeSource={RelativeSource Mode=TemplatedParent}}"/>147 </DoubleAnimationUsingKeyFrames>148 </Storyboard>149 </VisualTransition>150 <VisualTransition From="OpenCompactOverlayLeft" To="ClosedCompactLeft">151 <Storyboard>152 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ColumnDefinition1" Storyboard.TargetProperty="Width">153 <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="{Binding TemplateSettings.CompactPaneGridLength, FallbackValue=0, RelativeSource={RelativeSource Mode=TemplatedParent}}"/>154 </ObjectAnimationUsingKeyFrames>155 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentRoot" Storyboard.TargetProperty="(Grid.Column)">156 <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="1"/>157 </ObjectAnimationUsingKeyFrames>158 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentRoot" Storyboard.TargetProperty="(Grid.ColumnSpan)">159 <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="1"/>160 </ObjectAnimationUsingKeyFrames>161 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="PaneRoot" Storyboard.TargetProperty="Visibility">162 <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="Visible"/>163 </ObjectAnimationUsingKeyFrames>164 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="HCPaneBorder" Storyboard.TargetProperty="Visibility">165 <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="Visible"/>166 </ObjectAnimationUsingKeyFrames>167 <DoubleAnimationUsingKeyFrames Storyboard.TargetName="PaneClipRectangleTransform" Storyboard.TargetProperty="TranslateX">168 <DiscreteDoubleKeyFrame KeyTime="0:0:0" Value="0"/>169 <SplineDoubleKeyFrame KeyTime="0:0:0.12" KeySpline="0.1,0.9 0.2,1.0" Value="{Binding TemplateSettings.NegativeOpenPaneLengthMinusCompactLength, RelativeSource={RelativeSource Mode=TemplatedParent}}"/>170 </DoubleAnimationUsingKeyFrames>171 </Storyboard>172 </VisualTransition>173 <VisualTransition From="OpenCompactOverlayRight" To="ClosedCompactRight">174 <Storyboard>175 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ColumnDefinition1" Storyboard.TargetProperty="Width">176 <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="*"/>177 </ObjectAnimationUsingKeyFrames>178 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ColumnDefinition2" Storyboard.TargetProperty="Width">179 <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="{Binding TemplateSettings.CompactPaneGridLength, FallbackValue=0, RelativeSource={RelativeSource Mode=TemplatedParent}}"/>180 </ObjectAnimationUsingKeyFrames>181 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentRoot" Storyboard.TargetProperty="(Grid.ColumnSpan)">182 <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="1"/>183 </ObjectAnimationUsingKeyFrames>184 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="PaneRoot" Storyboard.TargetProperty="Visibility">185 <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="Visible"/>186 </ObjectAnimationUsingKeyFrames>187 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="PaneRoot" Storyboard.TargetProperty="HorizontalAlignment">188 <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="Right"/>189 </ObjectAnimationUsingKeyFrames>190 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="HCPaneBorder" Storyboard.TargetProperty="HorizontalAlignment">191 <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="Left"/>192 </ObjectAnimationUsingKeyFrames>193 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="HCPaneBorder" Storyboard.TargetProperty="Visibility">194 <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="Visible"/>195 </ObjectAnimationUsingKeyFrames>196 <DoubleAnimationUsingKeyFrames Storyboard.TargetName="PaneClipRectangleTransform" Storyboard.TargetProperty="TranslateX">197 <DiscreteDoubleKeyFrame KeyTime="0:0:0" Value="0"/>198 <SplineDoubleKeyFrame KeyTime="0:0:0.12" KeySpline="0.1,0.9 0.2,1.0" Value="{Binding TemplateSettings.OpenPaneLengthMinusCompactLength, RelativeSource={RelativeSource Mode=TemplatedParent}}"/>199 </DoubleAnimationUsingKeyFrames>200 </Storyboard>201 </VisualTransition>202 </VisualStateGroup.Transitions>203 <VisualState x:Name="Closed"/>204 <VisualState x:Name="ClosedCompactLeft">205 <Storyboard>206 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ColumnDefinition1" Storyboard.TargetProperty="Width">207 <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="{Binding TemplateSettings.CompactPaneGridLength, FallbackValue=0, RelativeSource={RelativeSource Mode=TemplatedParent}}"/>208 </ObjectAnimationUsingKeyFrames>209 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentRoot" Storyboard.TargetProperty="(Grid.Column)">210 <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="1"/>211 </ObjectAnimationUsingKeyFrames>212 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentRoot" Storyboard.TargetProperty="(Grid.ColumnSpan)">213 <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="1"/>214 </ObjectAnimationUsingKeyFrames>215 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="PaneRoot" Storyboard.TargetProperty="Visibility">216 <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="Visible"/>217 </ObjectAnimationUsingKeyFrames>218 <DoubleAnimation Storyboard.TargetName="PaneClipRectangleTransform" Storyboard.TargetProperty="TranslateX" To="{Binding TemplateSettings.NegativeOpenPaneLengthMinusCompactLength, RelativeSource={RelativeSource Mode=TemplatedParent}}" Duration="0:0:0"/>219 </Storyboard>220 </VisualState>221 <VisualState x:Name="ClosedCompactRight">222 <Storyboard>223 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ColumnDefinition1" Storyboard.TargetProperty="Width">224 <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="*"/>225 </ObjectAnimationUsingKeyFrames>226 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ColumnDefinition2" Storyboard.TargetProperty="Width">227 <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="{Binding TemplateSettings.CompactPaneGridLength, FallbackValue=0, RelativeSource={RelativeSource Mode=TemplatedParent}}"/>228 </ObjectAnimationUsingKeyFrames>229 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentRoot" Storyboard.TargetProperty="(Grid.ColumnSpan)">230 <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="1"/>231 </ObjectAnimationUsingKeyFrames>232 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="PaneRoot" Storyboard.TargetProperty="Visibility">233 <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="Visible"/>234 </ObjectAnimationUsingKeyFrames>235 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="PaneRoot" Storyboard.TargetProperty="(Grid.ColumnSpan)">236 <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="2"/>237 </ObjectAnimationUsingKeyFrames>238 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="PaneRoot" Storyboard.TargetProperty="HorizontalAlignment">239 <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="Right"/>240 </ObjectAnimationUsingKeyFrames>241 <DoubleAnimation Storyboard.TargetName="PaneClipRectangleTransform" Storyboard.TargetProperty="TranslateX" To="{Binding TemplateSettings.OpenPaneLengthMinusCompactLength, RelativeSource={RelativeSource Mode=TemplatedParent}}" Duration="0:0:0"/>242 </Storyboard>243 </VisualState>244 <VisualState x:Name="OpenOverlayLeft">245 <Storyboard>246 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="PaneRoot" Storyboard.TargetProperty="Visibility">247 <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="Visible"/>248 </ObjectAnimationUsingKeyFrames>249 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="HCPaneBorder" Storyboard.TargetProperty="Visibility">250 <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="Visible"/>251 </ObjectAnimationUsingKeyFrames>252 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="LightDismissLayer" Storyboard.TargetProperty="Visibility">253 <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="Visible"/>254 </ObjectAnimationUsingKeyFrames>255 </Storyboard>256 </VisualState>257 <VisualState x:Name="OpenOverlayRight">258 <Storyboard>259 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="PaneRoot" Storyboard.TargetProperty="Visibility">260 <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="Visible"/>261 </ObjectAnimationUsingKeyFrames>262 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="PaneRoot" Storyboard.TargetProperty="HorizontalAlignment">263 <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="Right"/>264 </ObjectAnimationUsingKeyFrames>265 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="HCPaneBorder" Storyboard.TargetProperty="Visibility">266 <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="Visible"/>267 </ObjectAnimationUsingKeyFrames>268 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="HCPaneBorder" Storyboard.TargetProperty="HorizontalAlignment">269 <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="Left"/>270 </ObjectAnimationUsingKeyFrames>271 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="LightDismissLayer" Storyboard.TargetProperty="Visibility">272 <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="Visible"/>273 </ObjectAnimationUsingKeyFrames>274 </Storyboard>275 </VisualState>276 <VisualState x:Name="OpenInlineLeft">277 <Storyboard>278 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentRoot" Storyboard.TargetProperty="(Grid.Column)">279 <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="1"/>280 </ObjectAnimationUsingKeyFrames>281 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentRoot" Storyboard.TargetProperty="(Grid.ColumnSpan)">282 <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="1"/>283 </ObjectAnimationUsingKeyFrames>284 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="PaneRoot" Storyboard.TargetProperty="Visibility">285 <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="Visible"/>286 </ObjectAnimationUsingKeyFrames>287 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="PaneRoot" Storyboard.TargetProperty="(Grid.ColumnSpan)">288 <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="1"/>289 </ObjectAnimationUsingKeyFrames>290 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="HCPaneBorder" Storyboard.TargetProperty="Visibility">291 <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="Visible"/>292 </ObjectAnimationUsingKeyFrames>293 </Storyboard>294 </VisualState>295 <VisualState x:Name="OpenInlineRight">296 <Storyboard>297 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ColumnDefinition1" Storyboard.TargetProperty="Width">298 <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="*"/>299 </ObjectAnimationUsingKeyFrames>300 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ColumnDefinition2" Storyboard.TargetProperty="Width">301 <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="{Binding TemplateSettings.OpenPaneGridLength, FallbackValue=0, RelativeSource={RelativeSource Mode=TemplatedParent}}"/>302 </ObjectAnimationUsingKeyFrames>303 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentRoot" Storyboard.TargetProperty="(Grid.ColumnSpan)">304 <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="1"/>305 </ObjectAnimationUsingKeyFrames>306 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="PaneRoot" Storyboard.TargetProperty="Visibility">307 <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="Visible"/>308 </ObjectAnimationUsingKeyFrames>309 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="PaneRoot" Storyboard.TargetProperty="(Grid.Column)">310 <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="1"/>311 </ObjectAnimationUsingKeyFrames>312 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="PaneRoot" Storyboard.TargetProperty="(Grid.ColumnSpan)">313 <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="1"/>314 </ObjectAnimationUsingKeyFrames>315 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="HCPaneBorder" Storyboard.TargetProperty="HorizontalAlignment">316 <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="Left"/>317 </ObjectAnimationUsingKeyFrames>318 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="HCPaneBorder" Storyboard.TargetProperty="Visibility">319 <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="Visible"/>320 </ObjectAnimationUsingKeyFrames>321 </Storyboard>322 </VisualState>323 <VisualState x:Name="OpenCompactOverlayLeft">324 <Storyboard>325 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ColumnDefinition1" Storyboard.TargetProperty="Width">326 <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="{Binding TemplateSettings.CompactPaneGridLength, FallbackValue=0, RelativeSource={RelativeSource Mode=TemplatedParent}}"/>327 </ObjectAnimationUsingKeyFrames>328 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentRoot" Storyboard.TargetProperty="(Grid.Column)">329 <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="1"/>330 </ObjectAnimationUsingKeyFrames>331 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentRoot" Storyboard.TargetProperty="(Grid.ColumnSpan)">332 <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="1"/>333 </ObjectAnimationUsingKeyFrames>334 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="PaneRoot" Storyboard.TargetProperty="Visibility">335 <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="Visible"/>336 </ObjectAnimationUsingKeyFrames>337 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="HCPaneBorder" Storyboard.TargetProperty="Visibility">338 <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="Visible"/>339 </ObjectAnimationUsingKeyFrames>340 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="LightDismissLayer" Storyboard.TargetProperty="Visibility">341 <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="Visible"/>342 </ObjectAnimationUsingKeyFrames>343 </Storyboard>344 </VisualState>345 <VisualState x:Name="OpenCompactOverlayRight">346 <Storyboard>347 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ColumnDefinition1" Storyboard.TargetProperty="Width">348 <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="*"/>349 </ObjectAnimationUsingKeyFrames>350 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ColumnDefinition2" Storyboard.TargetProperty="Width">351 <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="{Binding TemplateSettings.CompactPaneGridLength, FallbackValue=0, RelativeSource={RelativeSource Mode=TemplatedParent}}"/>352 </ObjectAnimationUsingKeyFrames>353 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentRoot" Storyboard.TargetProperty="(Grid.ColumnSpan)">354 <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="1"/>355 </ObjectAnimationUsingKeyFrames>356 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="PaneRoot" Storyboard.TargetProperty="Visibility">357 <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="Visible"/>358 </ObjectAnimationUsingKeyFrames>359 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="PaneRoot" Storyboard.TargetProperty="HorizontalAlignment">360 <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="Right"/>361 </ObjectAnimationUsingKeyFrames>362 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="HCPaneBorder" Storyboard.TargetProperty="HorizontalAlignment">363 <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="Left"/>364 </ObjectAnimationUsingKeyFrames>365 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="HCPaneBorder" Storyboard.TargetProperty="Visibility">366 <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="Visible"/>367 </ObjectAnimationUsingKeyFrames>368 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="LightDismissLayer" Storyboard.TargetProperty="Visibility">369 <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="Visible"/>370 </ObjectAnimationUsingKeyFrames>371 </Storyboard>372 </VisualState>373 </VisualStateGroup>374 </VisualStateManager.VisualStateGroups>375 376 <Grid.ColumnDefinitions>377 <ColumnDefinition x:Name="ColumnDefinition1" Width="{Binding TemplateSettings.OpenPaneGridLength, FallbackValue=0, RelativeSource={RelativeSource Mode=TemplatedParent}}"/>378 <ColumnDefinition x:Name="ColumnDefinition2" Width="*"/>379 </Grid.ColumnDefinitions>380 381 <!-- Content Area -->382 <Grid x:Name="ContentRoot" Grid.ColumnSpan="2">383 <Border Child="{TemplateBinding Content}"/>384 <Rectangle x:Name="LightDismissLayer" Fill="Transparent" Visibility="Collapsed"/>385 </Grid>386 387 <!-- Pane Content Area-->388 <Grid389 x:Name="PaneRoot"390 Grid.ColumnSpan="2"391 HorizontalAlignment="Left"392 Visibility="Collapsed"393 Background="{TemplateBinding PaneBackground}"394 Width="{Binding TemplateSettings.OpenPaneLength, RelativeSource={RelativeSource Mode=TemplatedParent}}">395 <Grid.Clip>396 <RectangleGeometry x:Name="PaneClipRectangle">397 <RectangleGeometry.Transform>398 <CompositeTransform x:Name="PaneClipRectangleTransform"/>399 </RectangleGeometry.Transform>400 </RectangleGeometry>401 </Grid.Clip>402 <Grid.RenderTransform>403 <CompositeTransform x:Name="PaneTransform"/>404 </Grid.RenderTransform>405 <Border Child="{TemplateBinding Pane}"/>406 <Rectangle 407 x:Name="HCPaneBorder"408 x:DeferLoadStrategy="Lazy"409 Visibility="Collapsed"410 Fill="{ThemeResource SystemControlForegroundTransparentBrush}"411 Width="1"412 HorizontalAlignment="Right"/>413 </Grid>414 </Grid>415 </ControlTemplate>
海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com
原标题:10、Windows10 上,在窗口左侧向右滑动打开 SplitView 的 Pane面板
关键词:Windows
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。