役に立ちましたか?

解決

あなたは、アプリケーションのコードの一部で、そのプロパティを見ることができます。

編集ます:

Border content = new Border();
int desiredHeight = content.DesiredSize.Height;
int desiredWidth = content.DesiredSize.Width;

問題を解決するためにDesiredHeightが境界線コントロールのXAMLマークアップで利用可能ではないようですから、height属性にバインドしようとします。

他のヒント

私はこれに走ってきました。トリガがRowDefinationにHeigth =「0」を除去するので、その例としては、どのような作品user275587が言った、の線に沿っています。

だから私は高さの設定/トリガロジックを切り替えるので、RowDefinationは何の高さが設定されていない

<Grid.RowDefinitions>
     <RowDefinition Height="Auto"/>
     <RowDefinition Name="ContentRow" />
</Grid.RowDefinitions>
...
<ControlTemplate.Triggers>
     <Trigger Property="IsExpanded" Value="False">
             <Setter TargetName="ContentRow" Property="Height" Value="0" />
     </Trigger>
</ControlTemplate.Triggers>

それを試してみます。

<Setter
    TargetName="content"
    Property="Height"
    Value="{Binding ElementName=content, Path=DesiredHeight}"
/>
    ↓
<Setter TargetName="content" Property="Height" Value="NaN"/>

バインディングは不要である。

私は自分のアプリケーションで同じ問題時に思いつきました。 IはCollapsedVisible間のコンテンツの可視性をトグルし、GridStackPanelを置換するように、最終的に、私は、コードを変更します。

私は一般的にMSコントロールテンプレートサンプルの品質はかなり良いことが判明しましたが、この1とのエラーは少しイライラさせられた。

同じ問題が、カルロによって受け入れられた解決策は完璧に動作しません。 ポスターは直面していた問題は、離れて行くが、Expanderは、部分的に壊す -

あなたがすでに展開し、膨張して展開する必要がありますいくつかのコンテンツを持っている場合、それはのDesiredSize.Height のへのバインディングとそうではないだろう、あなたはのDesiredHeight の必要がある - かもしれませんuser275587によって与えられた理由のためである。

同じ問題を持っていました。カスタムExpanderのカスタムComboBoxを使用していました。 上記のいずれもHeightは、各グループ内の項目の表示を破っ使用して、Expanderの機能を壊し、私のために働いていないStackPanelに結合します。私が見つけます:

<Setter TargetName="ContentRow" Property="Height" Value="Auto"/>

DesiredHeightは、コンテンツ要素から来て、それが有効なバインディングです。私はDesiredHeightがHeightプロパティに依存していると、それはDouble.Nanと評価されて、あなたのテンプレートで固定の高さを設定していないので、あなたが解決しない結合の理由があると思います。

scroll top