ポップアップの幅を別のコントロールの幅と同じにしたいが、多少のマージンが必要です。
私が欲しいのは
<Popup x:Name="ProfilePopup" Height="Auto"
Width="{Binding ActualWidth, ElementName=HeaderContainer}" -10 >
しかし、 wpf で「-10」の部分をどのように行うのですか? またはこれはコードでのみ可能ですか?
ポップアップの幅を別のコントロールの幅と同じにしたいが、多少のマージンが必要です。
私が欲しいのは
<Popup x:Name="ProfilePopup" Height="Auto"
Width="{Binding ActualWidth, ElementName=HeaderContainer}" -10 >
しかし、 wpf で「-10」の部分をどのように行うのですか? またはこれはコードでのみ可能ですか?
Converter
これを行うには、 が必要です。
public class SumConverter : IMultiValueConverter
{
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
{
if (parameter != null && values != null)
{
double result = 0;
foreach (object objectValue in values)
{
double value = 0;
double.TryParse(objectValue.ToString(), out value);
if (parameter.ToString() == "Add" || parameter.ToString() == "+")
result += value;
if (parameter.ToString() == "Subtract" || parameter.ToString() == "-")
result -= value;
}
return result;
}
return null;
}
public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
{
return null;
}
}
減算する金額を含むプロパティを追加する必要があり (BorderInnerThickness
例で名前が付けられています)、次のように使用します。
<Popup x:Name="ProfilePopup" Height="Auto">
<Popup.Width>
<MultiBinding Converter="{StaticResource SumConverter}" ConverterParameter="-">
<Binding Path="ActualWidth" ElementName="HeaderContainer" />
<Binding Path="BorderInnerThickness" />
</MultiBinding>
</Popup.Width>
</Popup>