0

どの階層が必要かを理解するのが難しいため、どのxamlキーワードをどこで使用するかを理解するのに問題があります。属性、プロパティ、または子ノードをどこでどのように使用するかについては、いくつかの壮大な設計があるようです。

<Node Attribute="True">
  <Node.Property />
</Node>

すべてのリボンメニュープロパティを説明しているこの美しいページを見つけましたが、xamlでそれらを使用する方法がわかりません。30分間検索してすべてを試した後、リボンメニューボタンに表示するアイコンを取得することができました。

  1. このすべての背後にある論理と、どこで何を使用するかを理解する方法は何ですか?

  2. リボンメニューをアプリケーションバー(ほとんどのWindowsアプリケーションのトップバー)とマージするにはどうすればよいですか?例のように、素敵なリボンアプリケーションメニューが表示されます。

  3. xamlバックグラウンドコンパイルをオフにする方法はありますか?これのためにIntellisenseを犠牲にします。

xamlエディターのパフォーマンスはひどいので、これについては多くの提案がありますが、今のところ機能しているものはありません。

編集:xaml構文は知っていますが、使用する階層についてのヒントはありません。したがって、使用したいオブジェクトが見つかった場合(すべて使用可能であるため)、間違ったオブジェクトを使用しているとだけ表示され、使用したいオブジェクトの種類を尋ねる必要があります。

また、通常のプログラミングでは、参照を使用すると、その中のすべてのクラスをいつでも使用できます。xamlを使用すると、クラスがどの参照からのものであるかを突然知る必要があります。また、参照が見つかりません。すべての参照を試して、特定のクラスがあるかどうかを確認するか、コード例を見つける必要があります。

4

2 に答える 2

2

良い質問です。#1の質問であなたが何を求めているのかを正確に把握するのは少し難しいですが、私はその質問について簡単に説明します。私はあなたの#2の質問に対する答えを持っています。私はあなたの#3に対する答えを持っていません。

「1.このすべての背後にある論理と、どこで何を使用するかを理解する方法は何ですか?」

クレメンスが述べたように、XAMLの概要は物事を説明するのにかなり良い仕事をします。あなたが質問している主なことの1つは、基本的に「属性構文とプロパティ要素構文をいつ使用するか」だと思います。そのドキュメントから:

オブジェクト要素の一部のプロパティでは、プロパティ値を提供するために必要なオブジェクトまたは情報を属性構文の引用符と文字列の制限内で適切に表現できないため、属性構文を使用できません。このような場合、プロパティ要素構文と呼ばれる別の構文を使用できます。

さて、あなたの質問のこの部分について...

「また、通常のプログラミングでは、参照を使用するときに、その中のすべてのクラスをいつでも使用できます。xamlを使用すると、クラスがどの参照からのものであるかを突然知る必要があります。また、参照が見つからないため、すべての参照を試す必要があります。特定のクラスがあるかどうかを確認したり、コード例を見つけたりします。」

質問の一部が、XAML(またはより適切にはxmlns)名前空間をより簡単に処理して、XAMLで参照を簡単に取得できるようにする方法に関するものである場合は、役立つと思われる手法があります。これにより、名前空間を統合して、使用するXAML名前空間プレフィックスを少なくすることができます(または、この手法を極端に使用する場合は、名前空間プレフィックスを使用しないこともできます)。

「2.リボンメニューをアプリケーションバー(ほとんどのWindowsアプリケーションのトップバー)とマージするにはどうすればよいですか?例のように、すばらしいリボンアプリケーションメニューが表示されます。」

基本的に、次の方法を求めているようです:(a)ウィンドウクローム領域(Aeroガラス領域)をウィンドウのクライアント部分(アプリケーションが通常物を置く部分)に拡張し、(b)拡張するウィンドウのクライアント部分をウィンドウクローム領域に追加します。これらの両方を実行できる場合は、MicrosoftOffice製品や最新のWebブラウザーのように見えるものになってしまう可能性があります。幸い、これらの両方を実行するのに役立つWPFシェル統合ライブラリがあります。このブログこのブログ(およびそれらが提供するソースコード)は、WPFシェル統合ライブラリの使用を開始するための優れたガイドであることがわかりました。

このライブラリを使用して、このウィンドウを作成することができました(まったく別のトピックであるAeroの色変更機能を除くすべて)。私が言及した両方の品質がここで機能していることに注意してください(TabControlは通常のウィンドウクロームトップバー領域に表示され、ウィンドウクロームAeroガラスは通常のクライアント領域に表示されます):

ウィンドウクロームの例

于 2013-01-31T16:55:45.863 に答える
1

これが私の見解です

1)このすべての背後にある論理と、どこで何を使用するかを理解する方法は何ですか?

間に収まるものはすべて、次の""ようにインライン化できます。

<TextBlock Text="{Binding Name}" />

できないことは何でも、要素の道を進んでください:

<TextBlock>
    <TextBlock.Text>
        <MultiBinding StringFormat="{}{0} ({1})">
            <Binding Path="Name" />
            <Binding Path="Gender" />
        </MultiBinding>
    </TextBlock.Text>
</TextBlock>

2)リボンメニューをアプリケーションバー(ほとんどのWindowsアプリケーションのトップバー)とマージするにはどうすればよいですか?例のように、素敵なリボンアプリケーションメニューが表示されます。

あなたはグーグルの周りに多かれ少なかれ複雑な巨大なジャンボを見つけるでしょう、これはそれの本質です:

<Window ...
        WindowStyle="None" AllowsTransparency="True" Background="Transparent"
        ...>
    <!-- Fill it up with a PNG image if you want to play with transparency -->
</Window>

次に、リボンを一番上の要素にして、閉じる/最大化ボタンを再作成します

3) xamlバックグラウンドコンパイルをオフにする方法はありますか?これのためにIntellisenseを犠牲にします。

うん、それはNotepad++と呼ばれています

于 2013-01-31T17:39:13.413 に答える