Elm-表单检查



以下函数包括collage的使用,仅用于转换将形状/形状转换为元素。

makeSlider : Element -> Form -> Element
makeSlider sliderShape sliderBarForm =
  let                                                                                                 
    sliderBar =
      --convert sliderBarForm from type Form to Element
      collage 1000 1000 [(move (0,0) sliderBarForm)]
  in 
    layers [sliderShape, sliderBar]

有没有一种方法可以提取Form的维度,比如Graphics.Element.sizeOf,这样makeSlider函数就不需要知道sliderBarForm的显式维度?

或者是否存在toElement函数,使得

collage 1000 1000 [(move (0,0) sliderBarForm)]

可以用代替

toElement (move (0,0) sliderBarForm)

我不认为你能轻易地得到表格的尺寸。我想这是因为表格可以是很多不同的东西(形状、路径等)。当我以后需要知道尺寸时,我会在创建表单时跟踪它们。

type alias MyForm =
  {   form : Form
    , width : Int
    , height : Int
  }
makeRectForm: Float -> Float -> MyForm
makeRectForm  w h = {form: (filled grey (rect w h)), width: (round w), height: (round h)}

然后在您的情况下,您可以将MyFormcollage一起使用。

makeSlider : Element -> MyForm -> Element
makeSlider sliderShape sliderBarMyForm =
  let                                                                                                 
    sliderBar =
      --convert sliderBarForm from type Form to Element
      collage sliderBarMyForm.width sliderBarMyForm.height [(move (0,0) sliderBarMyForm)]
  in 
    layers [sliderShape, sliderBar]

相关内容

  • 没有找到相关文章

最新更新