by

Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • 19:23
    usUyGBx opened #4054
  • 18:53
    usUyGBx opened #4053
  • 17:46
    danwalmsley synchronize #4043
  • 17:46

    danwalmsley on experimental-acrylic-brush

    use embedded noise asset. tweak dark opacity. (compare)

  • 15:09
    danwalmsley synchronize #4043
  • 15:09

    danwalmsley on experimental-acrylic-brush

    use invisible black for accent … (compare)

  • 14:28
    seanocali closed #4046
  • 14:12
    MaxXor commented #2649
  • 12:38
    jmacato review_requested #4052
  • 12:38
    jmacato review_requested #4052
  • 12:38
    jmacato opened #4052
  • 12:38
    jmacato review_requested #4052
  • 12:35

    jmacato on add-transition-delay

    add unit test (compare)

  • 12:17
    Symbai commented #4046
  • 11:36

    jmacato on add-transition-delay

    Implement transition delay (compare)

  • 10:42
    jmacato review_requested #4051
  • 10:42
    jmacato review_requested #4051
  • 10:42
    jmacato review_requested #4051
  • 10:42
    jmacato opened #4051
  • 10:41

    jmacato on fluent-slider-port

    Import Fluent Slider (compare)

Daniel Keenan
@dfkeenan
This is probably the wrong way todo things:
protected override void OnTemplateApplied(TemplateAppliedEventArgs e)
{
    base.OnTemplateApplied(e);

    if (VisualRoot is Window window)
    {
        var min = e.NameScope.Find<Button>("PART_MinimizeButton");
        min.Click += (s, e) => window.WindowState = WindowState.Minimized;

        var max = e.NameScope.Find<Button>("PART_MaximizeButton");
        max.Click += (s, e) => window.WindowState = WindowState.Maximized;

        var res = e.NameScope.Find<Button>("PART_RestoreButton");
        res.Click += (s, e) => window.WindowState = WindowState.Normal;

        var close = e.NameScope.Find<Button>("PART_CloseButton");
        close.Click += (s, e) => window.Close();

        max.IsVisible = window.WindowState != WindowState.Maximized; 
        res.IsVisible = window.WindowState == WindowState.Maximized;

        //TODO: How to hand window.IsActive Changed
    }
}

protected override void OnPointerPressed(PointerPressedEventArgs e)
{
    base.OnPointerPressed(e);
    if (VisualRoot is Window window)
    {
        window.BeginMoveDrag(e);
    }
}
I thought I could use window.GetPropertyChangedObservable(Window.IsActiveProperty) somehow. I can't find any example of it in the code though.
Daniel Keenan
@dfkeenan

Wrong property to start with. :D
I tried:

window.GetPropertyChangedObservable(Window.WindowStateProperty)
      .AddClassHandler((System.Action<WindowTitleBar, AvaloniaPropertyChangedEventArgs>)((t, e) =>
      {
          WindowState newValue = (WindowState)e.NewValue;
          max.IsVisible = newValue != WindowState.Maximized;
          res.IsVisible = newValue == WindowState.Maximized;
      }));

but that doesn't do anything.

Daniel Keenan
@dfkeenan
:O If you set HasSystemDecorations to false to hide the titlebar you also loose the ability to resize. D:
Nikita Tsukanov
@kekekeks
You are expected to implement your own resize grips
See DecoratedWindow in ControlCatalog
Daniel Keenan
@dfkeenan
I have created a custom WindowBorder control that mostly works. But sometimes when resizing the cursor changes back to the default.
image.png
Nikita Tsukanov
@kekekeks
Also note, that custom border is something undesirable on non-windows platforms
Daniel Keenan
@dfkeenan
max.IsVisible = window.WindowState != WindowState.Maximized;
res.IsVisible = window.WindowState == WindowState.Maximized;

var windowStateChanged = window.GetPropertyChangedObservable(Window.WindowStateProperty)
    .Select(e => (WindowState)e.NewValue);

max.Bind(Button.IsVisibleProperty, windowStateChanged.Select(ws => ws != WindowState.Maximized));
res.Bind(Button.IsVisibleProperty, windowStateChanged.Select(ws => ws == WindowState.Maximized));
Seems to work. :D
Daniel Keenan
@dfkeenan
Does anyone know what this thing in my csproj is?
  <ItemGroup>
    <Service Include="{508349b6-6b84-4df5-91f0-309beebad82d}" />
  </ItemGroup>
ahopper
@ahopper
t4 templates I think
Daniel Keenan
@dfkeenan
I do have one of those.
ahopper
@ahopper
how did it get there, I have it in some of mine but only when I add it
Daniel Keenan
@dfkeenan
I created the t4 template. I just don't remember seeing that service tag before.
ahopper
@ahopper
I guess vs adds it, I must have got into the habit of adding it myself.
Daniel Keenan
@dfkeenan
I ended up creating a WindowIconToBitmapConverter. I think my window is looking pretty good now.
image.png
Daniel Keenan
@dfkeenan
Not sure if I should embed a C# editor (RoslynPad) or just leave it watching the .csx file and continue to use VSCode.
ahopper
@ahopper
I ended up creating a WindowIconToBitmapConverter.
I had been thinking of doing the opposite and creating a vector drawing to .ico converter for my iconpacks app
Daniel Keenan
@dfkeenan
The Window.Icon property is of type WindowIcon and you can't seem to use it as an Image.Source.
Jose C Gomez
@josegomez
Hey guys sorry to ask again but any pointers on using bindings with radio buttons? I can't figure out how to bind several buttons to a single property in the model and have each radio change the value
A
Steven Kirk
@grokys
@josegomez binding the radio buttons to an enum? we don't have any particular way of doing this, you should handle it the same as WPF, e.g. https://stackoverflow.com/questions/397556/how-to-bind-radiobuttons-to-an-enum

@dfkeenan

I'm not sure if it's because of avalonia or visual studio. But everytime a xaml file is added it makes a bit of a mess of things in the csproj file.

yeah, this is VS :/ we should probably open an issue on the VS project system because it's really annoying

Is there a way to tell if a property is bound?

not bound as such but you can call AvaloniaObject.IsSet() to see if the property is set. there's no API that makes a distinction between a set and bound value though

Jose C Gomez
@josegomez
@grokys Not necessarily to an enum I just want the value of the radios to change the same field in the model
ir Radio1 bound to field x If checked sets x to "hi"
Radie2 bound to field x also if checked sets x to "bye"
I’ll check out the wpf suggestion
Splitwirez
@Splitwirez
...is it possible to have a selector check if a property's value is null (or non-null, for that matter)? And if so, how would one do this?
Daniel Keenan
@dfkeenan
Is there a "platform" style selector?
lorean-devries
@lorean-devries
what themes does avalonia support ?
lorean-devries
@lorean-devries
I have a WPF app built with Material Design which I wish to convert to a Avalonia UI powered app ?
Nikita Tsukanov
@kekekeks
there was an attempt to make material-like style
lorean-devries
@lorean-devries
cool beans thank you will have a look at it now
Omid Mafakher
@OmidID

I have problem with Linux Framebuffer that the device we have it's have inverted touch by X and Y and this is the configuration of xorg conf

Section "InputClass"
        Identifier "evdev touchscreen catchall"
        MatchIsTouchscreen "on"
        MatchDevicePath "/dev/input/event*"
        Driver "evdev"
        Option "InvertX" "True"
        Option "InvertY" "True"
EndSection

In case of using framebuffer the libinput is not using xorg config anymore and it's will start independ of X server.
I found out there is a function exists in libinput that can fix this problem.
https://wayland.freedesktop.org/libinput/doc/latest/api/group__config.html#ga09a798f58cc601edd2797780096e9804
How can I calibrate the device from the code using this function? The main problem is how can I have the struct libinput_device * device variable?

anatolym78
@anatolym78
What 3d rendering engines i can use with AvaloniaUI?
Nikita Tsukanov
@kekekeks
@OmidID Customization has to be added to the API, for now you can just copy-paste files from https://github.com/AvaloniaUI/Avalonia/tree/master/src/Linux/Avalonia.LinuxFramebuffer/Input/LibInput and use your customized input backend
@anatolym78 Avalonia is using OpenGL(ES) internally. An OpenGL 3.2+ or OpenGL ES 2.0 context is available depending on the current platform
proper integration API is currently WIP AvaloniaUI/Avalonia#3386
anatolym78
@anatolym78
Thank you
Evgeny Kravchenko
@KydesnikEvgesha
Добрый день, подскажите, есть примеры реализации reportviewer с avalonia?
FoggyFinder
@FoggyFinder
if you haven't noticed it is a English-language chat
@KydesnikEvgesha ^^
Evgeny Kravchenko
@KydesnikEvgesha
@FoggyFinder sorry and thanks a lot
Omid Mafakher
@OmidID
@kekekeks thank you so much. I'll try and if i need help I'll ask you again. 🙏
Deadpikle
@Deadpikle
:wave: Hi there. New to Avalonia but not WPF. I've been racking my brain trying to figure out why a ContentPresenter's Content property binding was not showing up in the UI. Switched to a ContentControl and it works fine. Is ContentPresenter not to be used in Avalonia? I've noticed it's not listed in the docs as a control.