2017-05-19 27 views
-1

UIの要素の位置を変更する方法や、アプリケーションの読み込み時に別のデザインを選択する方法を教えてください。WPF - UIのデザイン(要素の位置)を変更する方法

デザインごとにユーザーコントロールを使用することもできますが、このソリューションの悪い点は、同じコードが繰り返されることであり、私はそれを望まないということです。

これを達成するためのベストプラクティスを教えてください。コード内でコントロールを使用するには、コントロールに名前が必要です。

ありがとうございます。

概要:これは私が

Desired design 1 Desired design 2

+1

コードブロックとしてコードを挿入してください(私は問題を再現するためにスクリーンショットから入力してください)。私は、DockPanelをレイアウトルートとして使用し、UniformGridのDockを変更してレイアウトを切り替えることをお勧めします – ASh

+0

ボタンバーを2つの場所に移動し、縦と横の向きを変更したいとします。どのようにコードを繰り返すのか? –

答えて

0

は、WPFではレイアウトは、すべてのXAMLで達成したいものです。 XAMLはリソースディクショナリに格納できます。だから、あなたが正しいレイアウトを求めたら、正しいリソース辞書をロードすることができます。基本的にこのパターンは、UIなどの色を変更するテーマをロードする人々とまったく同じです。

0

私はかつてあなたの状況に似ていました。 次のようにあなたのケースでは、あなたは、最初にあなたのグリッドを設計する必要があり

<Grid.ColumnDefinitions> 
    <ColumnDefinition Width="{Binding LeftButtonColWidth}"/> 
    <ColumnDefinition Width="{Binding RightMainPanelColWidth}"/> 
</Grid.ColumnDefinitions> 
<Grid.RowDefinitions> 
    <RowDefinition Height = "32"/> 
    <RowDefinition Height = "*"/> 
    <RowDefinition Height = "{Binding ightMainPanelBottomButtonRowHeight}"/> 
</Grid.RowDefinitions> 

が続いてエンドユーザーによって指定されたいくつかの設定に基づいて、あなたのレイアウトを制御するためのviewmodelのプロパティ「LeftButtonColWidth」、「RightMainPanelColWidth」と「RightMainPanelBottomButtonRowHeight」を追加どこかに。

上記のコードはメインコンテナ用です。 また、Bindingプロパティを使用してメインコンテナグリッドとして設計する必要があるButtonのコンテナグリッドが必要です。ボタンコンテナでは、ViewModelのプロパティ "ButtonContainerRow"と "ButtonContainerCol"にGrid.RowとGrid.Columnをバインドする必要があります。アプリが起動すると、それらは特定の設定に基づいて変更されます。

これは私のソリューションです。他にも優れたソリューションが必要です。 誰かが私にxmalを使って解決策を与えることを望みます。それは完璧なものでしょう。

+0

私は、私は何か似て欲しいと言ったようにいくつかのコードを置くことができる、私は感謝しています: Darius

関連する問題