根据其中的控件设置用户控件大小



嗨,我想要 设置用户控件大小 根据其中的控件,我该怎么做? 很久以前我用过 普罗普雷蒂斯 大小到内容 ,但现在找不到它

>@zahra_rajabi, 通常将宽度和高度属性设置为"自动"将根据容器的内容自动设置容器的宽度和高度。

将用户控件中的主容器(宽度、高度(设置为"自动"以实现大小到内容。

* **请记住:DesignWidth 和 DesignHeight 仅在设计时有用

在这里,你可以使用 layouttransform 或 rendertransform

对不起,我的英语很差..

例如:

<UserControl 
x:Class="Setup.WPF.Gauges.SwitchOff_On_View"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:cal="http://www.caliburnproject.org"
xmlns:ikriv="clr-namespace:Setup.WPF.Converters"
mc:Ignorable="d" d:DesignHeight="150" d:DesignWidth="70"
x:Name="usercontrol" Height="150" Width="70" RenderTransformOrigin="0.5,0.5"
VerticalAlignment = "Top" HorizontalAlignment = "Left" Focusable="False" ClipToBounds="True" ToolTip="{Binding ToolTip}"
cal:Message.Attach="[Event MouseEnter] = [Action MouseEnter($eventArgs)]">
<UserControl.LayoutTransform>
<TransformGroup>
<RotateTransform x:Name="rotation" Angle="{Binding angle}"/>
<ScaleTransform x:Name="scale" ScaleX="{Binding scaleX}" ScaleY="{Binding ElementName=scale, Path=ScaleX}"/>
</TransformGroup>
</UserControl.LayoutTransform>
<Grid>  
:
:
:
</Grid>
</UserControl>

值 RenderTransformOrigin="0.5,0.5 很重要,因为您可以通知中心的位置。

首先,您必须计算比例因子,

例如,如果您希望大小(宽度(= 100 像素(启动时的宽度(,则可以根据已知元素的宽度大小、图像的宽度值或用户控件计算 ScaleX

比例X = 大小/大小元素

您在 ScaleTranform 中绑定 Scale (不需要旋转变换(

你可以在 C#(代码隐藏(中做到这一点,所以.

问候

相关内容

  • 没有找到相关文章

最新更新