1

クエリの実行に使用されているWebパーツ内にユーザーコントロールがあります。ユーザーコントロールは、結果の数に応じて、特定のポイントまで高さを増やすことができます。これにより、ユーザーコントロールのヘッダーが表示可能領域の外に押し出される可能性があります。

ユーザーコントロールの位置を取得し、Y座標が負の場合、Y座標が正の値になるようにユーザーコントロールを移動します。

この投稿のコードを使用して、ユーザーコントロールの位置を取得しています: UIElementの位置を決定する

しかし、今は自分の位置にいるので、ユーザーコントロールを移動する方法がわかりません。使ってみuserControl.SetValue(Canvas.TopProperty, 15.0) ましたが効果がありませんでした。

これを行う別の方法はありますか?

助けてくれてありがとう!

編集:XAML抽出が追加されました

<UserControl x:Class="Gazetteer.Search" 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk"
mc:Ignorable="d"
d:DesignHeight="336" d:DesignWidth="342" BorderBrush="{x:Null}">

<Grid x:Name="LayoutRoot" Background="#FFE2E2E2" MinHeight="80" MinWidth="280">

    <StackPanel Margin="10">
        <StackPanel Margin="10" Orientation="Horizontal">
            <RadioButton x:Name="townlandRB" Margin="5" Checked="radioBtnCheck"
            GroupName="Search Type" Content="Townland" />
            <RadioButton x:Name="sitecodeRB" Margin="5" Checked="radioBtnCheck"
            GroupName="Search Type" Content="Site Code" />
        </StackPanel>            
    </StackPanel>

</Grid>

4

1 に答える 1

1

配置は、ユーザーコントロールが含まれているコンテナタイプによって異なります。Canvas.TopPropertyは、親が実際にCanvasでない限り、何もしません。

代わりに、TranslateTransformを使用してオブジェクトを移動してください。

于 2012-05-10T12:33:06.627 に答える