문제:
1. 아래 Template를 여러 윈도우에 삽입하여 사용
2. Task를 200개 정도 실행
3. IsMouseOver Trigger의 ImageBrush가 로드될 때 프리징이 걸림
(BitmapImage.CreateOption을 DelayCreation으로 할 시 마우스를 컨트롤로 움직여야 프리징이 걸림 -> 해당 부분의 문제인 것 같음)
<ImageBrush x:Key="Down" ImageSource="LoaderListCtrl\Icon\Dwn.png" Stretch="Fill"/>
<ImageBrush x:Key="Up" ImageSource="LoaderListCtrl/Icon/Up.png" Stretch="Fill"/>
<ControlTemplate x:Key="BtnUp" TargetType="Button">
<Border Name="border" BorderThickness="0"
Background="{StaticResource Up}">
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" />
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" TargetName="border">
<Setter.Value>
<ImageBrush ImageSource="LoaderListCtrl/Icon/UpOver.png" Stretch="Fill" />
</Setter.Value>
</Setter>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
<ControlTemplate x:Key="BtnDown" TargetType="Button">
<Border Name="border" BorderThickness="0"
Background="{StaticResource Down}">
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" />
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" TargetName="border">
<Setter.Value>
<ImageBrush ImageSource="LoaderListCtrl/Icon/DownOver.png" Stretch="Fill" />
</Setter.Value>
</Setter>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
임시 해결:
같은 코드를 여러 곳에 집어넣지 않고 App.xaml에 넣어 두고 여러 곳에서 호출해서 사용하면 프리징에 걸리지 않음
기타:
왜 오류가 나는지 모르겠음
반응형
'Code > WPF' 카테고리의 다른 글
WPF MouseUp시 입력된 버튼 찾기 (0) | 2021.09.01 |
---|---|
WPF 마우스 이벤트가 작동하지 않는 문제 (0) | 2021.08.26 |
WPF 최대화 문제 (0) | 2021.08.21 |
VS2019 WPF Invalid Markup 오류 (0) | 2021.07.13 |
콘솔 프로그램에서 WPF 사용 (0) | 2021.06.30 |
WPF 단축키 한글 문제 해결 (0) | 2021.04.26 |
WPF에서 윈도우 10 스타일 FolderBrowserDialog 사용 (0) | 2021.04.06 |
WPF WindowStyle=None 시 최대화 (0) | 2021.03.29 |