我遇到以下示例的问题(稍微修改了专家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
我期望的行为是,当点击(左)时椭圆被涂成红色,但点击椭圆时没有任何反应。你认为这可能是什么问题?
答案 0 :(得分:1)
我认为问题是你的椭圆没有填充 - 尝试击中黑色部分或使用
let e = new Ellipse(Width=150., Height=150., Stroke=Brushes.Black, Fill = Brushes.White)
如果填充是空的,则不会执行Hittest - 你必须给它一些颜色(甚至是透明的)才能以这种方式工作。