回答
我只是不得不在我的主網格添加這樣的代碼(下面的代碼)。謝謝HighCore指出我正確的方向。
<Grid.LayoutTransform>
<ScaleTransform x:Name="ApplicationScaleTransform"
CenterX="0"
CenterY="0"
ScaleX="1.2"
ScaleY="1.2" />
</Grid.LayoutTransform>
但我該如何在MVVM模式中實現這個?
當然,我可以簡單地創建一個綁定,將ScaleX和ScaleY綁定到ViewModel中的屬性。
但它真的屬於ViewModel嗎?我的意思是這顯然是GUI的一部分,它應該只在視圖中。
編輯: 也許我應該綁定的ScaleX和scaleY的XAML代碼隱藏(如MainWindow.xaml.cs)內的財產的問題是,DataContext的已被設置爲視圖模型。
EDIT2我的解決方案
上的代碼片段會導致所有元素,以 「成長」。我的代碼問題是我的文本框的字體大小也受到了影響。我設法通過爲每個應該縮放的元素定義樣式來處理這種不需要的行爲。
<ResourceDictionary>
<vm:ViewModelLocator x:Key="Locator" d:IsDataSource="True" />
<Style TargetType="ScrollBar">
<Setter Property="LayoutTransform" >
<Setter.Value>
<ScaleTransform x:Name="ApplicationScaleTransform"
CenterX="0"
CenterY="0"
ScaleX="{Binding ScaleFactor, UpdateSourceTrigger=PropertyChanged}"
ScaleY="{Binding ScaleFactor, UpdateSourceTrigger=PropertyChanged}"
/>
</Setter.Value>
</Setter>
</Style>
<Style TargetType="TabItem">
<Setter Property="LayoutTransform" >
<Setter.Value>
<ScaleTransform x:Name="ApplicationScaleTransform"
CenterX="0"
CenterY="0"
ScaleX="{Binding ScaleFactor, UpdateSourceTrigger=PropertyChanged}"
ScaleY="{Binding ScaleFactor, UpdateSourceTrigger=PropertyChanged}"
/>
</Setter.Value>
</Setter>
</Style>
<Style TargetType="Button">
<Setter Property="LayoutTransform" >
<Setter.Value>
<ScaleTransform x:Name="ApplicationScaleTransform"
CenterX="0"
CenterY="0"
ScaleX="{Binding ScaleFactor, UpdateSourceTrigger=PropertyChanged}"
ScaleY="{Binding ScaleFactor, UpdateSourceTrigger=PropertyChanged}"
/>
</Setter.Value>
</Setter>
</Style>
<ResourceDictionary.MergedDictionaries></ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
問:此代碼看起來有點醜,有沒有辦法來定義多重目標類型相同的片段?例如
你也可以在ViewModel中創建一個'public bool IsTouchMode',或者在View中創建一個DP(如你喜歡的),並創建一個'DataTrigger'對其作出反應並修改'ScaleX'和'ScaleY'屬性。 – 2013-03-07 15:28:10
不適合我。我想我不能用Setter修改ScaleX/Y屬性。由於Setters在元素(UIElement)上工作,但ScaleTransform是從不是從UIElement派生的Transform派生的。 – Joel 2013-03-08 09:55:42
或者您可以嘗試使用valueconverter綁定到此布爾值屬性? – Nicholas 2013-03-08 10:43:37
- 1. Windows 8的WPF觸摸應用程序
- 2. 觸摸手勢支持WPF應用程序中的WinForms控件
- 3. WPF應用程序中的Windows 7觸摸屏鍵盤
- 4. WPF在可觸摸應用程序中滾動
- 5. WPF應用程序的觸摸(部分)凍結4.7
- 6. WPF應用程序失去觸摸能力
- 7. 爲WPF觸摸應用程序列表框添加慣性
- 8. wpf觸摸桌面應用程序在Windows 8
- 9. Sencha觸摸應用程序的建設
- 10. UIButton崩潰的應用程序觸摸
- 11. 單一應用程序的觸摸ID
- 12. WPF應用程序在觸摸與鼠標/觸控筆行爲上的區別
- 13. Android React本機觸摸響應程序調試 - 確定觸摸響應程序
- 14. 測試Sencha觸摸應用程序
- 15. Winform桌面應用程序和觸摸
- 16. Sencha觸摸應用程序在離線
- 17. 觸摸屏Qt應用程序
- 18. 生成sencha觸摸應用程序
- 19. 壓縮Sencha觸摸應用程序
- 20. 模擬觸摸輸入的Android應用程序
- 21. 如何檢測WPF應用程序中的觸摸按住手勢?
- 22. 抑制WPF全屏應用程序中的虛擬觸摸屏Windows鍵盤
- 23. 應用程序樣式應用時,WPF DataTrigger不會觸發嗎?
- 24. 在WPF應用程序中應用MVVM模式
- 25. 如何在應用程序中實現單點觸摸和多點觸摸?
- 26. 觸摸應用程序(WPF,C#VS 2010,用於MS Samsung SUR 40的Windows 7)
- 27. iPhone橫向模式中的觸摸座標應用
- 28. 以編程方式隱藏文本框中的Win7觸摸鍵盤提示? VB.net WPF應用程序
- 29. 將手持式觸摸事件添加到Web應用程序
- 30. 應用程序「不幸停止」觸摸插頁式廣告時
啊..現在我明白了......這只是一個'ScaleTransform'到1.2或其他東西。 – 2013-03-07 14:58:24
命令之間的空間和命令的大小增加了一點。 – Joel 2013-03-07 15:02:01
看到我編輯的評論。您需要應用佈局'ScaleTransform'。 – 2013-03-07 15:04:24