4

私はこれに沿って何かを作ろうとしてきました...ここに画像の説明を入力

私は見て、見て、この記事だけを見つけました。これをアプリケーションに統合するのに問題があります。今日WPFを始めたばかりなので勉強中です。window.Shell dLL をダウンロードしました。他に何が必要ですか?ありがとう!

4

3 に答える 3

15

これをアプリケーションに追加する方法についての段階的なガイドを探している場合は、試してみることができます。たまたま小さなアプリを少しブラッシュアップする必要があったのですが、これが気に入ったので試してみました。適用するのに約 45 分かかりました。実際にクールなもの!

最初に:ソースアプリケーションをダウンロードし、コンピューターに展開します。

その中に、3 つのサブフォルダーがあります。1 つはサンプル アプリケーションで、1 つは Microsoft.Windows.Shell という名前で、もう 1 つは CustomChromeLibrary という名前です。後者の 2 つをプロジェクト マップのルート フォルダーにコピーし、それらプロジェクト マップに追加して (既存のプロジェクトを追加)、スタートアップ プロジェクトからそれらを参照します。

CustomChromeLibrary を適用するウィンドウを開きます。からルートを変更する必要があります

<Window> 

<ccl:CustomChromeWindow>

、これは、次のコードをドキュメント ルートとして使用することによって行われます。

<ccl:CustomChromeWindow 
Title="YourWindowTitle" Height="268" Width="733" ResizeMode="CanResize" 
x:Class="YourNamespace.YourWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:shell="http://schemas.microsoft.com/winfx/2006/xaml/presentation/shell"
xmlns:ccl="clr-namespace:CustomChromeLibrary;assembly=CustomChromeLibrary"
xmlns:local="clr-namespace:YourNamespace" 
>

サンプルの最後の 3 行に注意してください。これらは、正しいライブラリを参照するように更新する必要があります。最後のものは実際にあなたの名前空間を参照しています。

次に、ウィンドウのソース コードを更新する必要があります。これは、まだ単純なウィンドウであり、エラーが発生するためです。

これを変える

public partial class YourWindow : Window

これに

public partial class YourWindow : CustomChromeLibrary.CustomChromeWindow

あなたはすでに道半ばです!

次に、ウィンドウのオブジェクト (タイトル バーなど) を作成する必要があります。これは、サンプル プロジェクト No. 5で見事に行われています。本当にコピーしただけです。

からすべてを取る

<shell:WindowChrome.WindowChrome>
    <shell:WindowChrome
    ...

ここまで

    <!--min/max/close buttons-->
    <ccl:CaptionButtons/>

これで、このようにウィンドウを埋めることができます

    <Grid> 
        The content of your Window goes here 
    </Grid>

そして、このようにxamlを閉じます

    </Grid>
</ccl:CustomChromeWindow>

これを実行しようとすると、別のエラーが表示されます。まだ 3 つのファイルが不足しています。

最初に必要なのは Microsoft ファイルです: CaptionButtonRectToMarginConverter.cs; サンプルにもあります。それをプロジェクトにコピーして追加します (既存のファイルを追加します)。

それに1つの変更を加える必要があります:

namespace YourNamespace
{ ...

サンプルの名前空間の代わりに。

最後に、ボタンを作成する 2 つの xaml ファイル (GlassButton.xaml と GlassIcon.xaml) が必要です。これらは "Resources" サブフォルダーにあります (xaml でリソース ディクショナリとして参照されます)。サブフォルダー全体をプロジェクトにコピーし、2 つのファイルをプロジェクトに追加します (既存のファイルを追加します)。

これで、最終的にプロジェクトを実行できるようになります。

これを忘れないでください: codeplex.com で元の記事の著者である gbahns に多くの賞賛を送りたいです!

于 2013-03-14T20:06:17.513 に答える
5

カスタム クロム用に見つけることができるかなりの数の実装があります。

あなたがリンクしたものに私が見た別のヘルパーライブラリは

MahApps.メトロ

セクション 3 を読んでください。Nuget を使用してセットアップできるため、新しい人が簡単に統合できます。

また、セクション 3.3 3.4 3.5MetroWindowでは、カスタム クロムを提供し、クロムのタイトル バーにコントロールを追加できるコントロールのカスタマイズと拡張について説明しています。

于 2013-03-09T22:30:37.440 に答える
0

このスタックオーバーフローの質問で:

カスタム ウィンドウ クロムを使用しているときに、WPF キャプション バーにボタンを追加するにはどうすればよいですか?

カスタム ウィンドウ Chrome ウィンドウのタイトル バーにボタンを挿入する方法について質問していました。xaml の例は、作業を進めるのに十分な場合があります。

それ以外は、あなたが何を探しているのかわかりません。

編集: 他の投稿にあるボタン スタイルはかなり単純化されたボタンですが、必要なスタイルに置き換えることができるはずです。

于 2013-03-14T17:41:32.373 に答える