Canvas.Clip wont work when integrating to sdl
Posted: 08 Jul 2024, 17:56
Hi,
the problem is that clipping rectangle is not working properly - > area is not clipped or clipped when i unclip it gradually it instantly unclips
this is the way i clip and unclip:
i am following this work flow to create the iview from the user control loading the xaml:
UserControl initialization (added a lot to make sure none is missing):
the problem is that clipping rectangle is not working properly - > area is not clipped or clipped when i unclip it gradually it instantly unclips
this is the way i clip and unclip:
Code: Select all
//inside an existing canvas frame
<Canvas.Clip>
<RectangleGeometry x:Name="FsTextClip" Rect="0,0,942.76,365.07"/>
</Canvas.Clip>
<!--Gradually unclip fs_text -->
<RectAnimation Storyboard.TargetName="FsTextClip"
Storyboard.TargetProperty="Rect"
From="0,0,0,204.58"
To="0,0,613.66,204.58"
Duration="0:0:0.6"
BeginTime="0:0:2.8"/>
Code: Select all
Noesis::Init();
Noesis::GUI::SetErrorHandler(CustomErrorHandler);
auto resource_path = getUiResourcesDirPath();
Noesis::GUI::SetXamlProvider(Noesis::MakePtr<NoesisApp::LocalXamlProvider>(resource_path.c_str()));
Noesis::GUI::SetFontProvider(Noesis::MakePtr<NoesisApp::LocalFontProvider>(resource_path.c_str()));
Noesis::GUI::SetTextureProvider(Noesis::MakePtr<NoesisApp::LocalTextureProvider>(resource_path.c_str()));
uc = Noesis::MakePtr<WelcomeScreenUC>();
activeView = Noesis::GUI::CreateView(activeScreen->getFrameWorkElement());
activeView->SetFlags(Noesis::RenderFlags_PPAA | Noesis::RenderFlags_LCD);
activeView->SetSize(width, height);
activeView->GetRenderer()->Init(device);
activeView->SetEmulateTouch(true);
Code: Select all
void WelcomeScreenUC::InitializeComponent()
{
Noesis::RegisterComponent<WelcomeScreenUC>();
Noesis::TypeOf<NoesisApp::Interaction>();
Noesis::TypeOf<NoesisApp::StyleInteraction>();
Noesis::RegisterComponent<NoesisApp::BehaviorCollection>();
Noesis::RegisterComponent<NoesisApp::TriggerCollection>();
Noesis::RegisterComponent<NoesisApp::StyleTriggerCollection>();
Noesis::RegisterComponent<NoesisApp::StyleBehaviorCollection>();
Noesis::RegisterComponent<NoesisApp::EventTrigger>();
Noesis::RegisterComponent<NoesisApp::PropertyChangedTrigger>();
Noesis::RegisterComponent<NoesisApp::DataTrigger>();
Noesis::RegisterComponent<NoesisApp::KeyTrigger>();
Noesis::RegisterComponent<NoesisApp::GamepadTrigger>();
Noesis::RegisterComponent<NoesisApp::StoryboardCompletedTrigger>();
Noesis::RegisterComponent<NoesisApp::TimerTrigger>();
Noesis::RegisterComponent<NoesisApp::MouseDragElementBehavior>();
Noesis::RegisterComponent<NoesisApp::TranslateZoomRotateBehavior>();
Noesis::RegisterComponent<NoesisApp::ConditionBehavior>();
Noesis::RegisterComponent<NoesisApp::ConditionalExpression>();
Noesis::RegisterComponent<NoesisApp::ComparisonCondition>();
Noesis::RegisterComponent<NoesisApp::GoToStateAction>();
Noesis::RegisterComponent<NoesisApp::InvokeCommandAction>();
Noesis::RegisterComponent<NoesisApp::ChangePropertyAction>();
Noesis::RegisterComponent<NoesisApp::ControlStoryboardAction>();
Noesis::RegisterComponent<NoesisApp::RemoveElementAction>();
Noesis::RegisterComponent<NoesisApp::LaunchUriOrFileAction>();
Noesis::RegisterComponent<NoesisApp::PlaySoundAction>();
Noesis::RegisterComponent<NoesisApp::SetFocusAction>();
Noesis::RegisterComponent<NoesisApp::SelectAction>();
Noesis::RegisterComponent<NoesisApp::SelectAllAction>();
// Noesis::RegisterComponent<Noesis::EnumConverter<NoesisApp::ComparisonConditionType>>();
// Noesis::RegisterComponent<Noesis::EnumConverter<NoesisApp::ForwardChaining>>();
// Noesis::RegisterComponent<Noesis::EnumConverter<NoesisApp::KeyTriggerFiredOn>>();
// Noesis::RegisterComponent<Noesis::EnumConverter<NoesisApp::GamepadTriggerFiredOn>>();
// Noesis::RegisterComponent<Noesis::EnumConverter<NoesisApp::GamepadButton>>();
// Noesis::RegisterComponent<Noesis::EnumConverter<NoesisApp::ControlStoryboardOption>>();
Noesis::GUI::LoadComponent(this, Noesis::Uri("welcomeScreen.xaml"));
}