Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Proposal] ThickItem, ColorItem, ValueItem 등, Animation 관련 클래스 기능 확장 및 네이밍 정리 #3

Open
3 tasks
jamesnet214 opened this issue Jan 10, 2024 · 5 comments

Comments

@jamesnet214
Copy link
Collaborator

Summary

기존 클래스 명의 명칭이 불분명한 문제와 더 다양한 기능을 제공하기 위한 논의가 필요해 보입니다.

Motivation

WPF에서 기본으로 제공하는 ThicknessAnimation, ColorAnimation, DoubleAnimation의 고전 사용 방식에 대한 불편함으로 인해 WPF에서의 Animation 사용에 대한 거부감과 기술적인 보급에 어려움이 발생하는 데에 있어 이를 개선하고자 합니다.

1차로 만든 ThickItem, ColorItem, ValueItem은 원 클래스와 비교하여 상대적으로 손쉽게 사용되도록 구현되었습니다.

  • ThickItem
  • ColorItem
  • ValueItem

Detailed design

논의에 대한 주요 토픽으로 예상되는 내용은 다음과 같습니다.

  • 클래스 네이밍 논의
  • 기능 스펙 논의
  • 향후 안정화 및 Nuget 분리에 대한 논의

그 밖에도 활발한 논의가 필요해 보입니다.

Notice

ThemeSwitch, RIotPlayButton, MagicNavigationBar 등의 WPF 튜토리얼 영상을 통해 해당 (ThickItem, ColorItem, ValueItem) 객체를 사용하고 있는 점을 고려하여 추후 대체되는 클래스는 [Obsolate] 처리하여 제공하는 것을 고려할 수 있습니다.

@jamesnet214
Copy link
Collaborator Author

ThickItem, ColorItem, ValueItem 네이밍의 유래는, 아래처럼 동일한 영어 단어 수를 맞추고자 쥐어 짜서 탄생했던 이름입니다.

<ThickItem .../>
<ColorItem .../>
<ValueItem .../>

의미에 있어서도 좀 더 나은 이름 변경의 필요성이 있어 보입니다.

@lukewire129
Copy link
Collaborator

lukewire129 commented Jan 11, 2024

<StoryBoard>
    <ThickItem .../>
    <ColorItem .../>
    <ValueItem .../>    
 </StoryBoard>

StoryBoard 뜻 자체가 이야기의 흐름을
**Item보단 좀 길더라도 **TimeLine같은 값은 어떨지

<StoryBoard>
    <ThickTimeLine.../>
    <ColorTimeLine .../>
    <ValueTimeLine .../>    
 </StoryBoard>

@lukewire129
Copy link
Collaborator

lukewire129 commented Jan 11, 2024

RenderTransform의 RotateTransform 같은 제어하고자 할때

ValueItem으로 처리한다면 대략적인 예시라 다음과 작성하였습니다. (정확한 포멧은 아닙니다.)

<ValueItem Target="RotateTransform의 Name" Property="Angle" To="5" From="10"/>

Property 설정하는 Changed부분에서 버그가 발생됩니다.

PropertyName 경로가 실제경로에 접근할 수 없는 상황이 일어나는 것으로 보입니다.

<ThickItem StoryBoard.Targetname=""  StoryBoard.TargetProperty=""/>
<ColorItem StoryBoard.Targetname=""  StoryBoard.TargetProperty=""/>
<ValueItem StoryBoard.Targetname=""  StoryBoard.TargetProperty=""/>    

그렇다고해서 그것을 보안을 하기엔 너무나 큰 리스크로 생각이 되기 때문에
우선은 각각 StoryBoard.TargetName, StoryBoard.TargetProperty attached Property를 적용 할 수 있게 하면 해결하는건 어떨지 건의드립니다.

@jamesnet214
Copy link
Collaborator Author

jamesnet214 commented Jan 12, 2024

@lukewire129 Timeline도 좋아 보입니다. Item을 대체할 최대한 짧은 작명 후보를 몇 개 더 고민해서 결정하면 좋을 것 같아요.

ThickTimeline
ColorTimeline
ValueTimeline
ThickAction
ColorAction
ValueAction
ThickMotion
ColorMotion
ValueMotion
ThickScenario
ColorScenario
ValueScenario
ThickTrigger
ColorTrigger
ValueTrigger

또다른 방식도 괜찮아 보입니다.

<Motion Type="Thick"/>
<Motion Type="Color"/>
<Motion Type="Value"/>

@lukewire129
Copy link
Collaborator

모션이 좀 통일성도 있고 좋아보이네요😁

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants