2012-03-12 4 views
0

私は要素の魔法使いにTextBlockとTextBoxをContentプロパティに持っています。私はTextBoxのTextAlignmentをコントロールの現在のスタイルに干渉することなく設定する必要があるので、Setter Propertyとxamlで何とか動作させる必要があります。他の要素のコンテンツの一部であるTextBoxにTextAlignmentプロパティを設定するにはどうすればよいですか?

これは可能ですか?スタイルを実行時に変更できるので、自分のコントロールでコンテンツを再作成したり、スタイルを設定したりする必要はなく、そのままスタイルを保持したいと思います。

編集:例はDataFormです。 DataFormはいくつかのDataField要素で構成されています。各DataFieldはラベルと入力コントロールで構成されています。今、通常私はこれを行うことができます

<DataField Label="{Binding ...}"> 
    <TextBox Text="{Binding ...}" TextAlignment="Right" /> 
</DataField> 

しかし、私はそれを避けたいと思っているDataFieldのスタイルを緩和します。ですから、DataFieldのTextAlignmentプロパティにアクセスできる方法はありますか?そうですね、私は右に設定することはできますが、すべてには設定できません。これが、DataFieldの特定のインスタンスで行う必要がある理由です。

タスク:そのスタイルに干渉することなくDataField Textを右揃えに設定し、特定のDataFieldに対してこれを行います。

私は今より明確になることを望みます。

+0

このテキストブロックとテキストボックスをどのような要素で追加しますか? – Vinicius

+0

私は何も追加していない、彼らはすでにこの要素のコンテンツに存在します。これは第三者要素です。 ContentBoxの中にTextBlockとTextBoxがあるListBoxItemがあるとします。 ListBoxItemのスタイルを妨げずに、TextBoxのTextAlignedプロパティを設定する必要があります。 – Goran

答えて

0

特定のTextBoxスタイルを作成するのはどうですか?

TextBox myTb = new TextBox(); 
myTb.Style = (Style)Application.Current.Resources["AlignedTextBoxStyle"]; 

I:あなたはプロパティ「スタイル」

<TextBox Style="AlignedTextBoxStyle"></TextBox> 

そして、あなたはそれを追加している場合、動的にあなたもこれを行うことができますことで、XAMLでそれを設定することができますこの方法をやって

<Style x:Key="AlignedTextBoxStyle" TargetType="TextBox"> 
    <Setter Property="HorizontalAlignment" Value="Right"></Setter> 
    <Setter Property="VerticalAlignment" Value="Center"></Setter> 
</Style> 

これがあなたの "ListBoxItem"スタイルに干渉することなくこれを行う最善の方法だと考えてください。

希望します。

+0

私はあなたに従っていません。 xamlにTextBoxが宣言されていないため、アクセスできません。私は別の例を説明するために質問を更新し、より明確にします。 – Goran

+0

コードビハインドまたは別のクラスの要素にテキストボックスを追加していますか? – Vinicius

+0

編集した質問を参照してください。私がDataFieldで何をしたいのか分かっているなら、私はDataFieldの例を挙げました。 – Goran