일부 사용자는 Office 2013에 터치 모드라는 새로운 기능이 있음을 눈치 챘을 것입니다.WPF 응용 프로그램의 터치 모드
는 그리고 이것은 내가 WPF에서 동일한을 달성 할 수 있는지 궁금
모습입니다. 어떤 아이디어?
일부 사용자는 Office 2013에 터치 모드라는 새로운 기능이 있음을 눈치 챘을 것입니다.WPF 응용 프로그램의 터치 모드
는 그리고 이것은 내가 WPF에서 동일한을 달성 할 수 있는지 궁금
모습입니다. 어떤 아이디어?
다음과 같은 코드 (주 코드)를 추가해야했습니다. 저를 올바른 방향으로 인도 해 주신 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의 일부임을 분명히 의미합니다.
편집 : 어쩌면 문제는 DataContext를 이미 뷰 모델로 설정되어있는 XAML Codebehind가 (. 예를 들어 MainWindow.xaml.cs를) 내부 공간에 scaleX가 및 scaleY를 결합해야한다.
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 또는 View의 DP (선호하는대로)에서'public bool IsTouchMode'를 생성하고 이에 반응하고'ScaleX'와'ScaleY' 속성을 수정하는'DataTrigger'를 생성 할 수 있습니다 . –
나를 위해 작동하지 않습니다. 나는 Setter로 ScaleX/Y 속성을 수정할 수 없다고 생각합니다. Setters는 요소 (UIElement)에서 작동하지만 ScaleTransform은 UIElement에서 파생되지 않은 Transform에서 파생됩니다. – Joel
또는 valueconverter를 사용하여이 부울 속성에 바인딩 할 수 있습니까? – Nicholas
아 .. 이제 알겠습니다 ... 그건 단지'ScaleTransform'에서 1.2 정도입니다. –
명령 사이의 공간과 명령 크기가 약간 증가합니다. – Joel
내 편집 된 댓글보기 레이아웃'ScaleTransform'을 적용해야합니다. –