直接上代碼了沒什麼好解釋的了,既然能設置最小,那鐵定就能設置最大windows
public MainPage() { //設定窗口啓動顯示大小 ApplicationView.PreferredLaunchViewSize = new Size(800, 600); ApplicationView.PreferredLaunchWindowingMode = ApplicationViewWindowingMode.PreferredLaunchViewSize; this.InitializeComponent(); }
double d = 1.88415; Math.Truncate(d) //結果爲 1 ,而不會是2。
<Pivot.HeaderTemplate> <DataTemplate x:Name="NavigationBar"> <Grid Width="{Binding Width}" Margin="0" Padding="0" HorizontalAlignment="Center"> <Grid.RowDefinitions> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> </Grid.RowDefinitions> <TextBlock Text="{Binding Text}" FontSize="15" HorizontalAlignment="Center"/> <SymbolIcon x:Name="triangleSymbolIcon" Symbol="Play" Grid.Row="1" Margin="0" Opacity="0" HorizontalAlignment="Center" RenderTransformOrigin="0.5,0.5"> <SymbolIcon.RenderTransform> <CompositeTransform x:Name="SymbolIconCompositeTransform" Rotation="-90"/> </SymbolIcon.RenderTransform> </SymbolIcon> </Grid> </DataTemplate> </Pivot.HeaderTemplate> double Widths = ApplicationView.GetForCurrentView().VisibleBounds.Width / 3; //應爲我這隻有3個頭因此用獲取的屏幕實際寬度除以3來設置每一個頭的寬度 pivot.DataContext=new {Text="xxx",Width=Widths}; //結果不顯示
原本想設置pivot.DataContext的,結果不顯示,只能以下使用了ide
pivotItem.Header=new {Text="xxx",Width=Widths}; //關於new{}這是個匿名實例
這下能正常顯示了,可是無論在模擬器仍是真機上都有顯示問題、
還得改下pivotHeaderItem這個樣式,把其中的margin 和padding都改成0就正常了。動畫
同組的控件會同時滑入,不一樣組的會依次滑入this
<TextBlock Pivot.SlideInAnimationGroup="1"/>
必定要記住要添加 windows mobile for UWP這個包,否則沒法獲取到狀態欄
若是你是mobile 和PC都適配那麼你得家平臺判斷。不然會異常3d
//PC須要判斷一下平臺 if (Windows.System.Profile.AnalyticsInfo.VersionInfo.DeviceFamily == "Windows.Mobile") { #region 顯示頂部通知欄 if (Windows.Foundation.Metadata.ApiInformation.IsTypePresent("Windows.UI.ViewManagement.StatusBar")) { StatusBar statusBar = StatusBar.GetForCurrentView(); statusBar.BackgroundColor = Colors.CadetBlue; // 背景色 statusBar.ForegroundColor = Colors.White; // 前景色 statusBar.BackgroundOpacity = 1; // 透明度 } #endregion } else { this.InitializeComponent(); }
全屏模式 ApplicationView.GetForCurrentView().TryEnterFullScreenMode(); 退出全屏 ApplicationView.GetForCurrentView().ExitFullScreenMode();
在後臺代碼裏要注意\uE154這種圖標,若是你的圖標字符代碼大於4位的話會被截斷,以下圖:
\u這種寫法只能取到4位,超過就直接當字符串讀取了。
那要怎麼使用呢?code
\U0001F575
沒錯就是改爲大寫的U,而後加3個0。
orm
在這裏很是感謝MSDN版主shao.meng的幫助。blog
var d = test2.TransformToVisual(scrollViewer.Content as UIElement); var p = d.TransformPoint(new Point(0, 0)); scrollViewer.ChangeView(p.X, null, null);
test2:是要定位的控件。
scrollViewer:就是ScrollViewer控件。
new Point(0,0)要定位控件的哪一個點,這裏的場景是來定位在scrollViewer中的水平位置,那麼只要獲取x的值就OK了
https://msdn.microsoft.com/zh-cn/library/dn252763.aspx
巨硬已經爲咱們實現了滾動動畫了,默認是開啓的。第四個參數就是設置動畫是否開啓的。事件
下面是我一個在寫的記帳APP的彈出菜單,應爲菜單不會再動了因此寫死。ci
起名字簡直崩潰%>_<%;
new[] { new { Text="密碼",Width=Widths,Glyph="\uE1F7",IconFontFamily=new FontFamily("Segoe MDL2 Assets"),TextFontFamily=new FontFamily("楷體")}, new { Text="夜間模式",Width=Widths,Glyph="\uE82F",IconFontFamily=new FontFamily("Segoe MDL2 Assets"),TextFontFamily=new FontFamily("楷體")}, new { Text="備份",Width=Widths,Glyph="\uE753",IconFontFamily=new FontFamily("Segoe MDL2 Assets"),TextFontFamily=new FontFamily("楷體")}, new { Text="設置",Width=Widths,Glyph="\uE115",IconFontFamily=new FontFamily("Segoe MDL2 Assets"),TextFontFamily=new FontFamily("楷體")} };
這個東西是綁定到一個listbox上的,在GetProperty()方法中填入上面定義的各個屬性的名稱便可。
以下代碼放在listbox的SelectionChanged事件中
var tempItem = (sender as ListBox).SelectedValue; var temp= tempItem.GetType().GetProperty("Text").GetValue(tempItem, null);
你們在碼字中確定發現,在一個page中定義了一個控件,可是在另一個page就訪問不了,提示有必定的訪問級別,一說這東西都知道是私有的。
那咱們怎麼辦呢?
你們可能碼字時沒注意,控件都有這個
x:FieldModifier="internal"
這玩意就是改元素的訪問級別的。
固然還有能夠使用
new MainPage().FindName(name) as XXX
我看到好多APP中都有這個實現,當時就想這是怎麼實現的呢,最開始難住個人是我在後臺CS中怎麼知道和設置前臺UI的顯示和隱藏呢。就想XMAL是視覺樹的樣子,那麼我就拿到他它的視覺樹就行了。
擼了半天找到這個
VisualStateManager 它裏面有個GotoState();經過它就能很好的控制其餘UI元素的顯示和隱藏了
他就是用來管理視覺樹狀態的,既然我要經過ScrollViewer的滾動來隱藏和顯示其餘的UI元素。 在ScrollViewer_ViewChanged事件中判斷好偏移的方向和偏移是否是大於某個值就OK了。