C# 用户控件在ViewBox中更改大小
我有一个用户控件(Windows 8.1应用程序),我使用路径向量控件开发了该控件。我把它放在一个视图框里了。问题是,当我改变屏幕分辨率甚至方向时,控件要么缩小,要么变大C# 用户控件在ViewBox中更改大小,c#,xaml,user-controls,windows-8.1,viewbox,C#,Xaml,User Controls,Windows 8.1,Viewbox,我有一个用户控件(Windows 8.1应用程序),我使用路径向量控件开发了该控件。我把它放在一个视图框里了。问题是,当我改变屏幕分辨率甚至方向时,控件要么缩小,要么变大 我想给它一个固定的大小,所以无论屏幕分辨率或方向是什么,它都不应该增加大小 我的用户控件的XAML是 <UserControl x:Class="controlMagnifier.MagnifierUsercontrol" xmlns="http://schemas.microsoft.com/winfx
我想给它一个固定的大小,所以无论屏幕分辨率或方向是什么,它都不应该增加大小 我的用户控件的XAML是
<UserControl
x:Class="controlMagnifier.MagnifierUsercontrol"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:controlMagnifier"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
d:DesignHeight="300"
d:DesignWidth="200">
<Canvas x:Name="controlCanvas" x:FieldModifier="public" >
<Canvas.RenderTransform>
<RotateTransform>
</RotateTransform>
</Canvas.RenderTransform>
<Grid Height="250" Width="176" Canvas.Left="23" Canvas.Top="40" >
<Border x:FieldModifier="public" x:Name="imgBorder" Width="150" CornerRadius="50,50,50,50" Margin="13,20,13,90">
<Border.Background>
<ImageBrush x:FieldModifier="public" x:Name="image1" />
</Border.Background>
</Border>
<TextBlock x:Name="txtreading" Height="30" Width="80" Margin="0,-145,0,0" FontWeight="Bold" Foreground="Red" FontSize="20" Text="ABC" TextAlignment="Center" />
<!--<Image Height="120" Width="150" Margin="0,-50,0,0" Source="Assets/SmallLogo.scale-100.png" ></Image>-->
<Path x:Name="MagnifyTip" Data="m 422.67516,254.62099 c -54.00107,0 -97.94018,-42.99659 -97.94018,-95.82439 0,-52.83449 43.93911,-95.824384 97.94018,-95.824384 53.98741,0 97.93335,42.989894 97.93335,95.824384 0,52.8278 -43.94594,95.82439 -97.93335,95.82439 z m -4.5e-4,-201.388003 c -59.74605,0 -108.33864,48.616303 -108.33864,108.338643 0,56.09938 81.0924,116.80009 104.5378,191.74948 0.50401,1.61877 2.01605,2.72166 3.71189,2.7098 1.70178,-0.0237 3.1901,-1.13847 3.67039,-2.76909 C 449.00187,276.46834 531.00741,217.73624 531.01334,161.55977 531.00741,101.84929 482.4089,53.232987 422.67471,53.232987 Z" Fill="#FFF4F4F5" Stretch="Fill" Stroke="Black" UseLayoutRounding="False" Height="227" Width="171" />
</Grid>
</Canvas>
</UserControl>
如果Viewbox中只有用户控件,只需去掉Viewbox,它会根据设计拉伸和缩放内容
如果您的Viewbox中有各种控件,但您只想调整其中一些控件的大小,那么您最好将布局更改为使用网格,并且只在Viewbox中包装要调整大小的内容
下面是一个3x3网格的示例,其中包含6个文本框、5个固定大小、1个动态(在视图框中):
“我想给它一个固定尺寸”。那你为什么把它放在一个视图框里?请显示实际使用用户控件的XAML。我想把它放在viewbox中,因为我还必须处理不同的屏幕分辨率和用户控件的位置。当我不使用Viewbox且我的测试设备处于横向模式时,我会在单击的位置获得用户控件,但当我进行横向操作时,图像会被裁剪,并且用户控件不会出现在单击的区域。。看我的代码不,它帮不了我!我只有一个图像框,用户控件必须通过它。
<Grid>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<TextBox Grid.Row="0" Grid.Column="0" Text="Fixed Size"></TextBox>
<TextBox Grid.Row="0" Grid.Column="1" Text="Fixed Size"></TextBox>
<TextBox Grid.Row="0" Grid.Column="2" Text="Fixed Size"></TextBox>
<TextBox Grid.Row="1" Grid.Column="0" Text="Fixed Size"></TextBox>
<TextBox Grid.Row="2" Grid.Column="0" Text="Fixed Size"></TextBox>
<Viewbox Grid.Row="1" Grid.Column="1" Grid.RowSpan="2" Grid.ColumnSpan="2">
<TextBox Text="Dynamic"/>
</Viewbox>
</Grid>