我制作了一张Window
SizeToContent="Width"
的图片浏览器。当我用系列中的第一张图片打开它时,这看起来就像我想要的那样。
当我进入系列中的下一张图片时,它比前一张更宽,Window
会调整大小以适合这张新照片。 Window
的左边缘位于同一位置,但Window
的右边缘现在位于屏幕边缘之外。
如何防止像这样自动调整大小?
我不想使用ResizeMode="NoResize"
,因为我希望用户能够根据需要手动更改Window
的大小。
XAML
<Window SizeToContent="Width" WindowStartupLocation="CenterOwner">
<Grid>
<DockPanel>
<Button DockPanel.Dock="Left"
Content="Previous" />
<Button DockPanel.Dock="Right"
Content="Next" />
<Image Source="{Binding CurrentImage}"
Stretch="Uniform"
StretchDirection="DownOnly"
RenderOptions.BitmapScalingMode="Fant" />
</DockPanel>
</Grid>
</Window>
答案 0 :(得分:4)
重置Loaded事件处理程序中的SizeToContent属性:
public MainWindow()
{
InitializeComponent();
Loaded += (o, e) => SizeToContent = SizeToContent.Manual;
}
或者,如果你不喜欢背后的代码:
<Window.Triggers>
<EventTrigger RoutedEvent="Loaded">
<BeginStoryboard>
<Storyboard>
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="SizeToContent">
<DiscreteObjectKeyFrame KeyTime="0"
Value="{x:Static SizeToContent.Manual}"/>
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Window.Triggers>