WPF от F # - реагирует на событие - PullRequest
0 голосов
/ 16 сентября 2011

У меня проблемы со следующим примером (слегка измененным из книги Эксперт F #)

open System.Windows
open System.Windows.Controls
open System.Windows.Shapes
open System.Windows.Media
open System

let contentInit =
    let w = new Window(Topmost=true)
    let c = new Canvas()
    w.Content <- c

    let e = new Ellipse(Width=150., Height=150., Stroke=Brushes.Black)
    c.Children.Add(e) |> ignore

    e.MouseLeftButtonUp.Add(fun _ -> 
                                    e.Fill <- Brushes.Red
                                )
    w

let a = new Application()

[<EntryPoint>]
[<STAThread>]
let main (args: string []) =
    let myWin = contentInit
    do a.Run(myWin) |> ignore
    1

Я ожидаю, что при нажатии (слева) эллипс будет окрашен в красный цвет, но при нажатии на эллипс ничего не произойдет. Как вы думаете, в чем здесь проблема?

1 Ответ

1 голос
/ 16 сентября 2011

Я думаю, что проблема в том, что ваш эллипс не заполнен - ​​попробуйте нажать черные части или используйте

let e = new Ellipse(Width=150., Height=150., Stroke=Brushes.Black, Fill = Brushes.White)

, если заливка пуста, ни один из тестов не будет выполнен - ​​вы должны придать ему цвет(даже прозрачный), чтобы работать таким образом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...